SAMB服务的搭建
samba服务是基于SMB协议上的文件共享系统,可以实现全平台兼容,允许Windows和Linux之间进行通讯
端口:
smb:提供对服务器中文件、打印资源的共享访问,TCP的139端口和445端口
nmb:提供基于NetBIOS主机名称的解析,UDP的137端口和138端口
ftp和samba对比:
ftp不能进行在线修改文件,需要下载—>修改—>上传这些操作
ftp的并发高,大文件下载速度快,面向公网
samba如果有写权限,可以直接在线修改
samba不适用于大型文件下载,面向内网
samba共享服务的权限分配:
文件系统权限和应用程序权限两种权限组成
SAMBA服务安装
yum install -y samba #C6中安装
配置文件解析
vim /etc/samba/smb.conf
[global] #全局设置
[homes] #用户目录共享设置
#本地samba用户的家目录
#默认允许在自己家目录上传下载
[printers] #打印机共享设置
[myshare] #自定义名称的共享目录设置
常见配置项:
workgroup = 工作组名称 #所在工作组,需要在一个工作组才能共享
server string = 描述信息 #服务器描述信息
Security = user/share #安全级别,share允许匿名用户的共享访问,user需要用户认证,Samba用户
log file = /var/log #日志文件位置
max log file = 50 #日志文件的最大容量,单位为KB
passwd backend = tdbsam #设置共享账户文件的类型
comment = 描述信息 #对共享目录的注释、说明信息
path = 路径 #共享目录在服务器中对应的实际路径
browseable = yes/no #该目录是否让其他人可见
guest ok = yes/no #是否允许所有人访问,等效于“public”
writable = yes/no #是否可写,与 read only 的作用相反
valid users = user1,user2,... #设置哪些用户可以访问
printable = yes/no #是否加载打印功能
拒绝IP访问:
[global] #区域内声明
hosts allow = 192.168.1. #申明允许网段
hosts allow = 192.168.1.1 #申明允许 IP
hosts deny = 192.168.1. #申明拒绝网段
hosts deny = 192.168.1.1 #申明拒绝 IP
#注意:允许 allow 与拒绝 deny 不能同时出现,只能单独出现,出现 allow 代表只允许出现 IP或网段访问,其它全部拒绝。出现 deny 代表只拒绝出现 IP或网段访问,其它全部允许
匿名用户共享配置
1.修改配置文件
vim /etc/samba/smb.conf
Security = share #修改安全等级为share,默认只能下载
#在配置文件尾部添加共享模块
[test] #共享名称
comment = test #描述信息
path = /test #共享路径
public = yes #是否允许公共访问,如果去掉,匿名用户无法访问
writable = yes #允许写入,允许更改内容,如果不允许写入,不加此选项
#共享服务权限:应用程序权限和文件系统权限,两种权限决定
2.创建共享目录
mkdir /test #共享目录和配置文件中的相对应,将共享的信息,写入到此目录中
3.启动服务
service smb start #启动服务
4.客户端测试
[root@localhost ~]# smbclient -L //192.168.4.115 #查看共享目录
Enter root's password: #无需输入密码,回车即可
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename Type Comment
--------- ---- -------
test #共享目录 Disk Public Stuff
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
登录服务器:
[root@localhost ~]# smbclient //192.168.4.115/ss
Enter root's password: #无需输入密码,回车即可
Anonymous login successful #登录成功
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>
本地用户共享
这里的用户是系统用户,但是密码是samba设置的密码,和系统密码不一样
1.修改配置文件
Security = user #用户级别认证
[homes] #系统用户的家目录,配置文件自带的,不需要添加
comment = Home Directories #描述信息
browseable = no #不允许别看
writable = yes #允许写入
; valid users = %S
; valid users = MYDOMAIN\%S
#在配置文件尾部添加共享模块
[ss] #共享名称
comment = test #描述信息
path = /test #共享路径
#public = yes #加上这一项,和匿名登录没有区别,是允许公共访问的,所以删除这一项
writable = yes #允许写入,允许更改内容,如果不允许写入,不加此选项
#共享服务权限:应用程序权限和文件系统权限,两种权限决定
2.创建共享目录
mkdir /test #共享目录和配置文件中的相对应,将共享的信息,写入到此目录中
3.为系统用户创建samba密码
[root@localhost samba]# pdbedit -a laow #创建samba密码
new password:
retype new password:
[root@localhost samba]# pdbedit -L #查看samba用户,没有创建samba密码就不是samba用户
laow:500:
[root@localhost samba]# pdbedit -x laow #删除samba用户
4.启动服务
service smb start #启动服务
5.客户端测试
[root@localhost ~]# smbclient -U laow -L //192.168.4.115 #本地用户查看共享目录
Enter laow's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename Type Comment
--------- ---- -------
ss Disk Public Stuff #添加的模块会被共享出来
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
laow Disk Home Directories #用户的家目录也会共享出来
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@localhost ~]# smbclient -U laow //192.168.4.115/ss #登录samba服务器的ss模块共享目录
Enter laow's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
[root@localhost ~]# smbclient -U laow //192.168.4.115/laow #登录系统用户共享的家目录
Enter laow's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \> ls
. D 0 Wed Jun 17 09:43:35 2020
.. D 0 Wed Jun 17 09:43:35 2020
.bash_profile H 176 Wed May 11 07:21:42 2016
.gnome2 DH 0 Fri Nov 12 09:04:19 2010
.bash_logout H 18 Wed May 11 07:21:42 2016
.bashrc H 124 Wed May 11 07:21:42 2016
34845 blocks of size 524288. 28548 blocks available
smb: \>
本地用户的权限分割
1.修改配置文件
vim /etc/samba/smb.conf
#将[homes]注释掉
#[homes]
# comment = Home Directories
# browseable = no
# writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
权限分割参数:
[test] #共享名称 #使用多个共享模块,设置不同的人员能够写入,访问
comment = test #共享描述
path = /test #共享的目录路径
public = yes #允许公共访问,允许读
read only = yes #只读权限 ######read only和public二选一##########
write list = zhangsan,lisi,... #哪些用户允许在此模块有写权限,如果是用户组:write list = @组名
valid users = lisi,zhangsan,... #允许访问的用户列表
create mask = 0766 #创建的文件权限
directory mask = 0766 #目录创建权限
[guanli]
comment = 管理者访问
path = /guanli
public = yes
read only = yes
write list = boss
valid users = boss,l1,b1
create mask = 0766
directory mask = 0755
[lbumen]
comment = l部门访问
path = /lbumen
public = yes
read only = yes
write list = boss,l1
valid users = boss,l1,l2
create mask = 0766
directory mask = 0755
[bbumen]
comment = b部门访问
path = /bbumen
public = yes
read only = yes
write list = boss,b1
valid users = boss,b1,b2
create mask = 0766
directory mask = 07552.客户端登录验证
2.客户端测试
本地用户的别名
samba的别名文件/etc/samba/smbuser
1.修改别名配置文件
vim /etc/samba/smbuser
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest #可以设置好几个别名,空格隔开
laow = 1 #将用户laow,设置别名为1
2.修改samba配置文件
vim /etc/samba/smb.conf
[global] #在这个区域下边添加
username map = /etc/samba/smbusers #增加这一行
3.重启服务
service restart smb #重启服务
4.客户端测试
[root@localhost ~]# smbclient -U 1 //192.168.4.115/ss #使用别名登录
Enter 1's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
smb: \>
samba 挂载到 Linux 目录上使用
1.在客户端创建挂载目录
mkdir /root/smb #创建挂载目录
2.挂载
mount -t cifs -o username=laow,password=123 //192.168.4.115/ss /rootsmb/ #将samba服务器的ss共享目录挂载到客户端的/root/smb目录下
3.刷新权限
mount -a #刷新权限
4.查看
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 2.2G 14G 14% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 575M 32M 513M 6% /boot
/dev/sr0 3.7G 3.7G 0 100% /mnt/cdrom
//192.168.4.115/ss 18G 2.3G 14G 14% /root/smb #挂载成功
#可以直接在挂载的目录下,操作共享目录的内容