(一)Samba是一个与Windows操作系统兼容的文件与打印共享服务器,通过在Linux服务器上配置Samba,可以使Linux系统集成到Windows网络中。在网络中,用户可以使用多种方法实现数据共享,例如常见的Web服务、FTP服务。使用这两种网络服务的好处是:它们是标准的Internet服务,可以被绝大多数操作系统支持,用户基本不用考虑操作系统之间集成问题。另外,各种Unix操作系统之间也可以通过SSH和NFS提供数据共享服务。但是这两种服务在微软Windows系列操作系统中默认不被支持,因而Windows客户机访问这两种服务时不方便。现在微软网络使用文件共享协议为CIFS(通用Internet文件系统),基本可以认为是SMB的升级版本。Linux下的Samba服务就是基于SMB/CIFS协议的。
(二)配置Samba服务器
实验环境:LinuxAS4操作系统,双网卡,IP分别为192.10.30.3/24(VM1) | 192.10.10.3/24(VM2)
[root@localhost /]#rpm -qa |grep samba
system-config-samba-1.2.21-1 #提供了RH公司专门为SMB服务器管理编写的图形界面的管理程序,功能不如Swat工具完善
samba-common-3.0.10-1.4E6 #Samba的支持软件包,提供smb服务器和客户机中都必须使用的公共文件
samba-client-3.0.10-1.4E.6 #提供了samba客户机的所有文件,可以使Linux作为客户机访问Windows服务器或其他Samba服务器
samba-3.0.10-1.4E.6 #基本的服务器软件包,用于提供SMB服务
system-config-samba-1.2.21-1 #提供了RH公司专门为SMB服务器管理编写的图形界面的管理程序,功能不如Swat工具完善
samba-common-3.0.10-1.4E6 #Samba的支持软件包,提供smb服务器和客户机中都必须使用的公共文件
samba-client-3.0.10-1.4E.6 #提供了samba客户机的所有文件,可以使Linux作为客户机访问Windows服务器或其他Samba服务器
samba-3.0.10-1.4E.6 #基本的服务器软件包,用于提供SMB服务
samba-swat-3.0.10 #基于Web界面的管理工具,使用户可以比较方便地精确调整Samba服务器
smb.conf文件分成多个小节,结构清晰,该文件不区分大小写,如参数"writable = yes"与"writable = YES"等价;以"#"和";"开头的行为注释行
smb.conf文件分成多个小节,结构清晰,该文件不区分大小写,如参数"writable = yes"与"writable = YES"等价;以"#"和";"开头的行为注释行
[root@localhost /]#grep -v "^#" /etc/samba/smb.conf |grep -v "^;" #查看smb.conf有效配置内容
[global] #全局参数字段
workgroup = mygroup #定义Samba服务器所在的工作组域
netbios name=Linux srv #定义计算机的Netbios名,默认不存在,新添加
server string = Linux samba Server #定义计算机描述,通过网上邻居访问时可以在备注信息中看到这个信息
netbios name=Linux srv #定义计算机的Netbios名,默认不存在,新添加
server string = Linux samba Server #定义计算机描述,通过网上邻居访问时可以在备注信息中看到这个信息
client code page = 936
character set = 936 # 以上用于支持中文字体
#unix charset = cp936 #我按以下输入不支持中文
#dos charset = cp936
# unix charset = gb2312 #我按以下输入不支持中文
#dos charset = gb2312
hosts allow = 192.10.30. 192.10.10. #允许访问的网络或主机地址,注意此句本为注释行
printcap name = /etc/printcap
load printers = yes #自动加载打印机列表
cups options = raw
load printers = yes #自动加载打印机列表
cups options = raw
log file = /var/log/samba/%m.log #设置Samba服务器的日志文件存放路径,%m.log为变量,表示客户端主机名称
max log size = 50 #日志文件最大容量,单位是KB
security = user #定义Samba服务器的安全级别;share:共享级别,所有用户不需要用户名和密码即可访问;user:这是Samba的默认配置,所有用户需提供用户名及密码才能访问;server:和user安全级别类似,所有用户必须通过身份验证才能访问服务器的资源,如果递交失败,退到user级别;domain:要求网络上存在一台Windows域控制器,Samba把用户名能密码传给指定的域控制器进行验证
encrypt passwords = yes #是否加密密码,no表示以明文传输
smb passwd file = /etc/samba/smbpasswd #指定存放Samba用户密码文件
encrypt passwords = yes #是否加密密码,no表示以明文传输
smb passwd file = /etc/samba/smbpasswd #指定存放Samba用户密码文件
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
interfaces = 192.10.30.3/24 192.10.10.3/24 #指定Samba使用的网络接口,可使用接口名或者IP地址
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes] #目录共享字段
comment = Home Directories
browseable = no #表示所有Samba用户目录不被看到,只有登录用户才能看到自己的宿主目录
writable = yes #设置用户对自己的宿主目录有写权限
[printers] #打印机共享字段
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[public] #以public为共享名共享
comment = Public directories #描述共享信息
path = /home/public #指定共享目录位置
public = yes #对所有Samba用户可见
writable = yes #允许用户对该目录进行写入操作
[public2]
path =/usr/public2
only guest = yes #表示所有用户在使用该共享目录进的用户身份都是guest,即linux系统用户nobody
writable = yes
path =/usr/public2
only guest = yes #表示所有用户在使用该共享目录进的用户身份都是guest,即linux系统用户nobody
writable = yes
browseable = no #用户都不能浏览到,类似于public,但可以在运行处输入\\IP\public2访问到
printable = no
printable = no
:wq 保存以上配置文件
[root@localhost /]#testparm #查看Samba有效的设置情况
[root@localhost /]#service smb restart #重新启动Samba服务 或使用service smb reload
[root@localhost /]#smbpasswd -a user1 #建立Samba用户
#smbpasswd -a 向 /etc/samba/smbpasswd中添加用户
#smbpasswd -x 从/etc/samba/smbpasswd中删除用户
#smbpasswd -d 禁用某个Samba用户
#smbpasswd -e 启用某个Samba用户
#smbpasswd 命令所操作的帐户必须是Linux系统中已有的用户
[root@localhost /]#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/sambpasswd #将所有的linux用户帐户一次性添加到smbpasswd文件中
[root@localhost /]#smbpasswd user2 #为了使新加入的用户帐户可用,还得设置Samba密码,区分所有用户还没有加入到smbpasswd文件时命令的写法
从Windows客户端访问:通过网上邻居直接找到Samba服务器进行访问或者在运行中输入UNC路径
[root@localhost /]#smbclient -L 127.1 #查看本机提供的共享资源
[root@localhost /]#smbstatus #显示Samba服务器连接状态;显示客户端IP/主机名/登录用户/及锁定的文件等
[root@localhost /]#smbclient //192.10.30.10/aa -U aa #访问Windows主机上的资源,注意格式(IP后面不能有空格)
[root@localhost /]#smbmount //19210.30.10/aa /mnt #将Windows主机上的共享目录直接挂载到Linux主机上
[root@localhost /]#umount /mnt/ #卸载Samba文件系统
(三)使用Swat管理samba服务器
[root@localhost /]#chkconfig swat on #启动Swat
[root@localhost /]#vi /etc/xinetd.d/swat #修改允许访问Swat服务的客户主机IP地址,可根据管理需求进行更改;在此我注释掉#only_from =127.0.0.1,即允许任意IP访问
[root@localhost /]#service xinetd restart #重启xinetd服务
在30段客户端浏览器中输入http://192.10.30.3:901/,Swat服务默认工作端口为901 在弹出的对话框中以root登录可全局控制
^^接下来就以Web界面的方式管理Samba了,自己好好再研究下吧
转载于:https://blog.51cto.com/firefly222/246685