一、SMB
1、SMB(Server Message Block)协议是windows中使用的文件共享协议,类似于linux系统的NFS,在类Unix系统中可以通过samba服务来实现SMB功能
2、samba服务是SMB的开源实现,功能如下:
-通过SMB协议进行文件共享
-通过SMB协议进行文件打印
-加入一个windows2000/2003/2008域环境
-通过windows域环境进行认证操作
3、SMB协议又称为CIFS(Common Internet File System)协议
二、samba
1、samba的安装
yum install -y samba
2、samba拥有三个子服务
-smbd
提供文件及打印共享功能,使用139、445端口
-nmbd
提供NetBOIS支持,使用137端口
-winbindd
提供针对windows2000/2003/2008的用户及组信息的解析功能
(一般作为文件共享使用samba,只需smbd服务)
(winbindd服务需要单独安装 yum install -y samba-winbindd
)
三、客户端
1、windows客户端直接连接:
\\192.168.1.100\testdir
2、类Unix系统图形连接方式:
smb://192.168.1.100/testdir
3、Linux使用CLI(命令行)下使用smbclient连接:
smbclient //192.168.1.100/testdir -U username
4、也可以使用mount命令挂载smb共享:
mount -t cifs //192.168.1.100/testdir /mnt -o username=lynn,password='abc123'
四、samba服务
1、samba服务配置文件
/etc/samba/smb.conf
2、samba服务可以作为独立服务器使用,也可以加入windows的域环境使用
3、作为独立服务器使用时,samba使用Linux用户作为其用户,但是需要单独创建密码(因为密码的加密和传输方式win和Linux不一样)
3、当加入windows域环境使用时,一般使用windows域用户
4、samba两种安全模式
-User-Level # 默认安全模式,使用用户名、密码进行认证
-Share-Level # 只需要密码既可访问共享,但与部分windows客户端有兼容问题,不推荐使用
5、配置文件分为三部分
-[ global ] # 定义全局性配置
-[ homes ] # 定义对用户家目录的共享目录
-[ printers ] # 定义打印机共享配置
五、Global配置[ global ]
1、配置工作组信息:
workgroup = Baidu # 当前工作组
server string = This is Baidu.com WorkGroup # 工作组简介信息
2、配置安全模式:
security = user
支持的安全模式:
-user 默认(用户级)
-share 创建匿名共享时(共享级)
-domain (用户级)
-ads (用户级)
-server (用户级)
六、用户家目录共享[ homes ]
1、samba服务配置文件默认配置好了用户家目录共享,每一个Linux用户的家目录均可以使用smb协议访问
[ homes ]
comment = Home Directories
browseable = no
writable = yes
为通过smb协议访问家目录的用户创建samba密码
smbpasswd -a username
启动samba服务
service smb start
通过smbclient登录验证
smbclient //192.168.1.100/testdir -U username
2、创建独立共享
-通过向/etc/samba/smb.conf添加如下配置
[linuxcast-smb]
comment = This is LinuxCast.net demo samba share
path = /linuxcast-smb
valid users = linuxcast lynn
public = no
browsable = yes
writable = yes
printable = no
create mask = 0765
3、创建匿名共享
-如果需要创建一个不需要用户名密码就可以访问的开放共享
-修改samba的安全级别为share
[ globle ]
security = share
[ linuxcast-pub ]
commnet = LinuxCast.net Public Readonly Share
path = /linuxcast-pub
read only = yes
guest only = yes
(使用share安全级别可能会与一些windows客户端不兼容)
4、其他
-可以通过testparm命令检查samba配置文件语法是否正确
testparm
-可以通过命令smbclient查看一个指定服务器都有哪些共享
smbclient -L 192.168.1.100
smbclient -L 192.168.1.100 -U username