一、samba简介
1、smb协议
smb(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。如图:
2、cifs协议
随着 Internet 的流行,Microsoft 希望将 SMB 这个协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS (Common Internet File System),它使程序可以访问远程 Internet 计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS 是公共的或开放的 SMB 协议版本,并由 Microsoft 使用。SMB 协议在局域网上用于服务器文件访问和打印的协议。
3、ftp 服务 与 samba 服务对比
- ftp 的优缺点:
优点:文件传输、应用层协议、可跨平台
缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件 - Samba 的特性:
使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件
二、2. Samba 服务详解
1、Samba 软件相关信息
- 协议:SMB/CIFS
- 软件名:smaba
- 服务:smb 实现资源共享、权限验证 TCP 139 445
- 配置文件(/etc/samba/)
smb.conf 主配置文件
smbusers 别名配置文件
2、登录验证模式
- share 匿名验证 。
- user 本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)。
- 别名用户访问(虚拟用户)。
3、配置参数解释
[global]#全局配置
workgroup = SAMBA #设定 Samba Server 所要加入的工作组或者域。
security = user #设置用户访问Samba Server的验证方式
passdb backend = tdbsam #指定数据库文件引擎
printing = cups 使用 cups服务 进行打印,打印相关配置。
printcap name = cups
load printers = yes
cups options = raw
[homes]#用户宿主目录配置
comment = Home Directories #共享描述
valid users = %S, %D%w%S #允许访问该共享的用户
browseable = No #共享是否可被查看
read only = No #是否只读
inherit acls = Yes #支持acl权限
[printers] #打印相关配置
comment = All Printers #打印共享描述
path = /var/tmp #打印路径
printable = Yes #是否可打印
create mask = 0600 #创建时文件权限
browseable = No #是否可以被浏览
[print$] #打印驱动相关配置
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
4、写入权限的控制方式:
- 配置文件开启,文件系统严格控制(尽量采用这种)
writable = yes
setfacl 或 chmod 777 - 文件系统开启,配置文件严格控制
chmod 777 /dir
read only = yes
write list = 用户,@组
5、服务启动与管理
1、centos6
启动、停止、重新启动和重新加载Samba服务 service smb start|stop|restart|reload
开机自动启动samba服务 chkconfig --level 2345 smb on|off
2、cenos7
启动、停止、重新启动和重新加载Samba服务 systemctl start|stop|restart|reload smb
开机自动启动samba服务 systemctl enable/disable smb
6、客户端登录方式
Linux 端:
smbclient -U 用户名 -L //服务器 IP #查看服务器共享
smbclient -U 用户名 //服务器 ip/共享名 #登录服务器共享
Window 端
\服务器 ip共享名
net use * /del #清空登录缓存