一、Samba服务介绍
Samba是种自由软件,用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连结。Samba服务功能强大,这与其通信基于SMB/CIFS协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口;后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。、
二、Samba配置
1、Samba服务安装
yum -y install samba sambaclient(客户端)
2、修改配置文件
vim /etc/samba/smb.conf
3、防火墙配置
firewall-cmd --permanent --add-service=samba(也可直接将防火墙清空iptables -F 或者关闭防火墙服务)
4、客户端测试
smbclient -L //172.18.251.127(匿名登陆列出)
在这里我们看不到我们共享的qianyaota,因为在samba服务器配置文件里面我们把browseable 设置为了no,我们修改为yes,从新用客户端登陆测试(修改配置文件后需要重新启动服务才能生效)
systemctl restart smb
在这里我们通过用户登陆来测试不同的权限
首先添加samba用户,前提是添加的用户是系统中本来就存在的用户
smbpasswd -a baisuzhen smbpasswd -a fahai smbpasswd -a xuxian smbpasswd -a xushilin
用户登陆测试
因为考虑到selinux的问题,所以要为对应的共享目录设置期望值
semanage fcontext -a -t "samba_share_t" '/smb/fenxiang(/.*)?' restorecon -Rv /smb/fenxiang/
还又另一种方法也可以
chcon -t samba_share_t /smb/fenxiang
不仅仅需要服务本身允许进行写入操作,还需要对目录赋予用户权限
setfacl -m u:baisuzhen:rwx /smb/fenxiang/ setfacl -m u:xuxian:rwx /smb/fenxiang/ setfacl -m u:xushilin:rwx /smb/fenxiang/
前期工作已经做好,就可以放心大胆的测试了
因为在samba服务器配置文件中虽然写了默认不能写writeable=no,但我们又添加了write list=baisuzhen ,...,赋予了其写的权限,所以成功上传(samba用户上传文件时只能上传自己家目录的文件,不能上传其他目录文件)
上图所示,这里的用户fahai就不能上传文件,不仅仅时目录权限本身,连samba服务就没有允许
三、samba服务多用户挂载
这里需要安装一个cifs-utils的包
yum -y install cifs-utils (一般为默认安装)
我们直接写入/etc/fstab文件中实现开机自动挂载
vim /etc/fstab
//172.18.251.127/qianxiaota /ceshi cifs defaults,multiuser,username=fahai,password=centos,sec=ntlmssp 0 0
multiuser(多用户模式)
username=fahaim,password=centos (选择权限小的用户,这样可以实现自动切换)
当然这样有点不×××全,也可以写入一个文件里,比如写到/etc/user.txt
/etc/fstab 文件里就可以这样编写
//172.18.251.127/qianxiaota /ceshi cifs defaults,multiuser, credentials=/etc/user.txt ,sec=ntlmssp 0 0
mkdir /ceshi
mount -a
通过df命令进行查看,成功挂载
测试通过其他用户直接进入挂载目录中权限的不同
cifscreds add 172.18.251.127
如上如所示,该用户无法创建删除
如上图所示,该用户可以创建文件,实现多用户挂载功能