samba是一款能将UNIX实现Windows SMB/CIFS文件共享服务器的套件,本篇文章将会通过案例互动的方式让大家学习:SBIT特殊权限、用户组群以及Samba权限的配置。
1> 原始需求
2> 案例分析
用户 | 主组 | 附加组 |
xga(管理员) | xga | xxgcxy,padmin |
xgu(员工) | xxgcxy |
由于各部门需求一致,表格处仅对信息工程学院部门用户展开分析。
3> SAMBA服务器部署
3.1> 安装Samba套件并调整防火墙策略在部署开始前需要仔细检查Linux服务器是否正确配置网络接口信息。
yum -y install sambafirewall-cmd --permanent --add-service=sambafirewall-cmd --reload
3.
2
>
创建用户分组并查看分组Gid
groupadd xxgcxygroupadd glxygroupadd wyxygroupadd padmincat /etc/group | grep -E "xxgcxy|glxy|wyxy|padmin"
3.3> 建立Samba账号
成为Samba账号的前提是该账号必须是Linux系统中的用户。
useradd xga -s /sbin/nologin -G 1001,1004useradd xgu -s /sbin/nologin -g 1001useradd gla -s /sbin/nologin -G 1002,1004useradd glu -s /sbin/nologin -g 1002useradd wya -s /sbin/nologin -G 1003,1004useradd wyu -s /sbin/nologin -g 1003
此处使用的-G参数为修改新的附加组列表,-g参数为强制修改新主组,需要根据前面查询到的实际gid来输入命令。
建立用户后可以通过 id [user] 命令来验证配置是否正确。
id xga
使用 smbpasswd -a [username] 命令将规划用户依次授权smb登录
smbpasswd -a xgapdbedit -L
授权smb用户步骤一致,此处仅添加xga用户命令作为演示,通过命令 pdbedit -L 命令可以查询所有授权smb用户
3.4> 创建共享目录并配置权限
新建用于smb共享的总目录并修改上下文类型
mkdir /smbsharechcon -t samba_share_t /smbshare/ls -ldZ /smbshare
创建部门文件夹并配置相应权限
cd /smbshare/mkdir -m 1777 xxgcxy glxy wyxychown xga:xga xxgcxy/chown gla:gla glxy/chown wya:wya wyxy/
此处1777属于启用SBIT特殊权限(权限只对文件夹生效),可以用 ls -l 查看到文件夹权限为 drwxrwxrwt ,这样配置是确保用户只能删除属于自己的文件,搭配 smb.conf 的 inherit 继承父目录所属主功能可以做到部门员工只能上传下载而不能删除文件的需求。
创建公用目录及子目录并配置相应权限
mkdir -m 755 publiccd publicmkdir -m 775 信息工程学院 管理学院 外语学院 Toolschown xga:xxgcxy 信息工程学院/chown gla:glxy 管理学院/chown wya:wyxy 外语学院/chown root:padmin Tools/
3.5> 修改Samba配置文件
vim /etc/samba/smb.conf
[global] workgroup = WORKGROUP security = user[信息工程学院] valid users = +xxgcxy writable = yes path = /smbshare/xxgcxy inherit owner = yes create mask = 0744 directory mask = 0777 force directory mode = 1000[管理学院] valid users = +glxy writable = yes path = /smbshare/glxy inherit owner = yes create mask = 0744 directory mask = 0777 force directory mode = 1000[外语学院] valid users = +wyxy writable = yes path = /smbshare/wyxy inherit owner = yes create mask = 0744 directory mask = 0777 force directory mode = 1000[公用] valid users = +xxgcxy,+glxy,+wyxy writable = yes path = /smbshare/public create mask = 0775 directory mask = 0775 force directory mode = 0000
建议将配置文件中的[homes]对应值全部注释避免混淆。
因为Windows默认工作组为WORKGROUP,所以在Samba服务中我们也要将工作组改成Windows默认,这样Windows客户机就可以在“网络”中发现我们的Samba服务器快速建立联机。
4> 运行Samba服务
4.1> 调整SELinux
setsebool -P samba_export_all_ro 1setsebool -P samba_export_all_rw 1
4.2> 启动Samba套件
systemctl restart nmb smb
5> 访问Samba共享
完成上述配置后我们的SMB文件共享服务器就成功运行啦,接下来就是要使用客户机与我们的Samba服务器建立联机。
但是在Linux中访问共享文件呢还差一步——安装Samba客户端。
yum -y install samba-client cifs-utils
5.1> Linux - 列出共享目录
smbclient -L 10.0.0.211 -U xga
命令中使用信息工程学院管理员账号xga进行访问,大家可以通过命令登录其他用户进行尝试。
5.2> Linux - 访问共享目录
smbclient //10.0.0.211/信息工程学院 -U xga
smbclient操作的指令和ftp类似:dir命令列出当前目录的文件/文件夹,rm命令删除共享目录的文件,rd命令删除共享目录的空文件夹,put命令上传文件到共享目录,get命令将共享文件下载到本机。
5.3> Windows - 访问共享目录
在Windows中访问只需要在“此电脑”中输入Samba服务器的 UNC 路径即可,例如 \\10.0.0.211 随后在Windows安全对话框中输入Samba共享账号信息即可访问。
需要确保Samba服务器和Windows客户端在相同广播域中才能访问哦~
以上就是这篇文章的全部内容,如果喜欢我们的内容欢迎 关注 收藏转发喔~