一:为什么使用samba:
原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁哈,Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至我们可以使用samba Server完全取代windows中的域控制器,做域管理工作,使用也非常方便滴。
二:Samba应用环境
(1)文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问哈。
(2)身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
(3)名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。
(4)浏览服务:局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源
三:samba工作原理:
Samba服务功能强大,SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期哈,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。
Samba工作流程:
———(1)———> ———-(2)—->smb.conf主配置文件
[客户端] [Samba服务器]
——– (4)———-> ———-(3)———->日志文件
(1)客户端请求访问Samba服务器上的Share共享目录。
(2) Samba服务器接收到请求后,会查询主配置文件smb.conf,查看是否共享Share目录,如果共享了这个目录则查看客户端是否有权限访问。
(3)Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都是需要我们设置。
(4)如果客户端满足访问权限设置,则允许客户端进行访问
四:samba配置
(一):主配置文件:/etc/samba/smb.conf
该配置文件288行。分为三个部分:
1、samba配置简介,主要讲解samba实现的功能
2:selinux 配置:关于linux的设置
可以根据你的需求对于selinux做不同的设置:
3、Global Settings:全局设置
(1)workgroup = WORKGROUP #workgroup名字
#server string = Samba Server Version %v #描述字段
interfaces = lo0 eth0 eth1 #侦听在那些接口上,可配置为ip,网段,接口等各种格式
hosts allow = 127. 192.168.12. 192.168.13.#访问控制
(2)五种安全级别模式:
share安全级别模式
客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。
user安全级别模式
客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
server安全级别模式
客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。
domain安全级别模式
如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。
ads安全级别模式
当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
4:共享目录设置:用户共享目录设置
[test100]—设置共享名,随意命名
path = /test100 设置需要共享的路径
public = no 禁止匿名访问,如果允许则设置为yes
readonly = no 可以读写,如果只读则为yes
wirtable = yes 是否允许写操作,不允许为no
wirte list = RedHat3001 redhat3002 redhat3003 可写用户列表
browsable = yes 是否允许浏览
设置匿名访问
public = yes #允许匿名访问
public = no #禁止匿名访问
设置访问用户
valid users = 用户名
valid users = @组名
设置目录只读
readonly = yes #只读
readonly = no #读写
设置目录可写
writable = yes #读写
writable = no #只读
write list格式:
write list = 用户名
write list = @组名
如果需要做更多的配置,可以参照smb.conf文件里的选项
(二):修改完文件后,为samba生成用户,密码数据库
[root@notexample ~]# smbpasswd -a user 添加用户并设置密码
[root@notexample ~]# smbpasswd user 修改用户密码
(三)重启samba服务
service smb restart
(四):测试
smbclient -L HOSTNAME 查看samba共享的目录
smbclient //hostname/service -U user 在linux下登录samba服务器
example:smbclient //notexample/FTP -U RedHat3001
passwd:
mount -t cifs //notexample/FTP -o user=user,passwd=passwd 挂载samba共享的目录,可以利用autofs自动挂载
(一):主配置文件:/etc/samba/smb.conf
该配置文件288行。分为三个部分:
1、samba配置简介,主要讲解samba实现的功能
2:selinux 配置:关于linux的设置
可以根据你的需求对于selinux做不同的设置:
3、Global Settings:全局设置
(1)workgroup = WORKGROUP #workgroup名字
#server string = Samba Server Version %v #描述字段
interfaces = lo0 eth0 eth1 #侦听在那些接口上,可配置为ip,网段,接口等各种格式
hosts allow = 127. 192.168.12. 192.168.13.#访问控制
(2)五种安全级别模式:
share安全级别模式
客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。
user安全级别模式
客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
server安全级别模式
客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。
domain安全级别模式
如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。
ads安全级别模式
当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
4:共享目录设置:用户共享目录设置
[test100]—设置共享名,随意命名
path = /test100 设置需要共享的路径
public = no 禁止匿名访问,如果允许则设置为yes
readonly = no 可以读写,如果只读则为yes
wirtable = yes 是否允许写操作,不允许为no
wirte list = RedHat3001 redhat3002 redhat3003 可写用户列表
browsable = yes 是否允许浏览
设置匿名访问
public = yes #允许匿名访问
public = no #禁止匿名访问
设置访问用户
valid users = 用户名
valid users = @组名
设置目录只读
readonly = yes #只读
readonly = no #读写
设置目录可写
writable = yes #读写
writable = no #只读
write list格式:
write list = 用户名
write list = @组名
如果需要做更多的配置,可以参照smb.conf文件里的选项
(二):修改完文件后,为samba生成用户,密码数据库
[root@notexample ~]# smbpasswd -a user 添加用户并设置密码
[root@notexample ~]# smbpasswd user 修改用户密码
(三)重启samba服务
service smb restart
(四):测试
smbclient -L HOSTNAME 查看samba共享的目录
smbclient //hostname/service -U user 在linux下登录samba服务器
example:smbclient //notexample/FTP -U redhat3001
passwd:
mount -t cifs //notexample/FTP -o user=user,passwd=passwd 挂载samba共享的目录,可以利用autofs自动挂载。