一 安装软件
samba服务器软件包
# rpm -ivh samba-3.0.23c-2.i386.rpm
samba客户端工具
# rpm -ivh samba-client-3.0.23c-2.i386.rpm
通用工具和库
# rpm -ivh samba-common-3.0.23c-2.i386.rpm
# rpm -ql samba
# rpm -ql samba-client
# rpm -ql samba-common
二 基本命令
1 smbtree
作用:显示局域网中的所有共享主机和目录列表
用法:smbtree -b -D -U redhat%redhat
说明:b广播、D域名工作组、U用户名和密码
2 nmblookup
作用:显示一台主机的ip地址
# nmblookup /*
显示当前所有活动主机的IP地址,/为转义,否则*为当前目录的所有目录和文件
3 smbclient
作用:显示/登录局域网中的共享文件夹
smbclient -L win2000/10.0.0.21 -N
smbclient -L win2000/10.0.0.21 -U redhat%redhat
说明:显示指定计算机内容
smbclient //10.0.0.21/lab -U redhat%redhat
说明:登陆指定计算机
4 挂载两种方式
作用:挂载到指定目录
用法:
# mount -t cifs -o username=administrator,password=redhat,rw //10.0.0.21/lab /mnt
或
# smbmount //10.0.0.21/lab /mnt -o username=redhat%redhat
#umount /mnt
5 smbtar
作用:远程备份网上邻居中的文件
用法:smbtar -s win2000 -u redhat -p redhat -x sharename -t backup.tar
教程中提到默认的smbtar是有问题的,于是查找smbtar文件
# which smbtar
# file /usr/bin/smbtar
/usr/bin/smbtar: Bourne shell script text executable
说明:查类型,smbtar是个文本shell脚本
# vim /usr/bin/smbtar
移到最后eval处去掉 -N 参数
# tar tvf backup.tar
6 smb
说明:图形操作,文件管理地址栏里输入
smb://10.0.0.21
输入用户名和密码
三 samba服务器配置
1 修改配置文件 /etc/samba/smb.conf
workgroup=workgroup
security=share #user
[docs]
path=/usr/share/doc
comment=share documents
public=yes
2 重新启动smb服务器
#service smb restart
#chkconfig smb on
3 测试
#smbclient -L localhost
四 配置smb.conf
samba用户
1 共享目录设置有效用户
[redhat]
path=/var/redhat
comment=redhat's files
public=no
valid users=<username> <@groupname>
write list=<username> <@groupname>
create mask=0660
directory mask=0770
2 新建samba用户
# useradd username //首先必须是系统用户
# smbpasswd -a username //加入smb用户,输入smb密码
#more /etc/samba/smbpasswd
3 用户账号映射 *
[global]
username map = /etc/samba/smbusers
# vim /etc/samba/smb.conf
去掉以上注释
# smbuseradd unixname:mapname //此命令只有redhat有,fedora没有
# vim /etc/samba/smbusers //可以直接修改文件
#testparm //测试配置文件是否正确
附:用windows测试时,在cmd下可以显示连接,删除连接
>net use
>net use /delete //10.0.0.8/ipc$
五 案例
要求:
1 为所有的用户创建账号和目录,不分配shell。
假设市场部有tom、jack,技术部有red、blue,总经理是ceo,财务是finance
2 建组sales和tech,把所有市场部的员工加入sales组,技术部的员工加入tech组
3 创建两个目录/home/sales和/home/tech,并且修改两个目录的权限,分别属于sales组和tech组
4 通过samba共享/home/sales和/home/tech组
5 测试
实施:
# groupadd sales
# groupadd tech
# useradd -g sales -s /dev/null tom
# useradd -g sales -s /bin/false jack
# smbpasswd -a tom
# smbpasswd -a jack
# for user in red blue
> do
> useradd -g tech -s /bin/false $user
> smbpasswd -a $user
> done
# more /etc/samba/smbpasswd
# useradd ceo
# useradd finance
# smbpasswd -a ceo
# smbpasswd -a finance
# mkdir /home/sales /home/tech
# chgrp sales /home/sales/
# chgrp tech /home/tech/
# chmod 770 /home/sales/
# chmod 770 /home/tech/
# chmod g+s /home/sales/ //永远属于这个组
# chmod g+s /home/tech/
[sales]
path = /home/sales
comment = sales's stuff
public = no
valid users = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
path = /home/tech
comment = tech's stuff
public = no
valid users = @tech
write list = @tech
create mask = 0770
directory mask = 0770
测试:
# smbclient //10.0.0.8/sales -U tom
出错提示:
tree connect failed: Call returned zero bytes (EOF)
解决方法:
将smb.conf中@改成+
六 通过web方式管理samba
1 安装swat软件
# rpm -ivh xinetd-2.3.14-8.i386.rpm
# rpm -ivh samba-swat-3.0.23c-2.i386.rpm
2 修改配置文件
# vim /etc/xinetd.d/swat
only_from = 10.0.0.11
disable = no
user = root
# /etc/init.d/xinetd restart
3 只允许10.0.0.11机器访问,并输入root系统用户的用户和密码
http://10.0.0.8:901/