前言
- 本篇文章直接使用实例讲解,所以不会过多讲述概念性的知识,基本上都是
Samba
的一些基础配置,内容主要包括Samba
的安装以及用户权限的配置,接下来我开始本次教程吧。
开始
实例项目背景(需求)
- 某公司需要在内网搭建一个存储服务器,以供企业
行政部
、财务部
、技术部
、商务部
四个部门的员工使用,使用需求如下:
一共有行政部
、财务部
、技术部
、商务部
、共享软件
五个文件夹,五个文件夹的要求如下:行政部
、财务部
、技术部
、商务部
四个部门的员工账号,互相独立,只能访问自己部门的文件夹,且拥有读
、写
、执行
权限。- 四个部门所有员工都能访问
共享软件
文件夹,但是只有读
、执行
权限。 技术部
文件夹下分别有1组
、2组
、3组
三个文件夹分别给三个组的员工使用,要求每个组的员工只能访问自己组的文件夹,但是技术部的主管可以访问所有租的文件夹。- 所有文件夹都使用垃圾站回收,防止用户误删文件。
- 管理员对
共享软件
文件夹有读
、写
、执行
权限。
用户划分
- 根据上述的需求可以发现不同的部门员工有着不同的权限,就算同一个部门也会有不同的权限,因此可以可视化表格如下:
用户名 身份 所属组 授权目录 xingzheng1 行政部员工 xingzheng1,xingzheng 行政部、共享软件 caiwu1 财务部员工 caiwu1,caiwu 财务部、共享软件 jishu1 技术部员工 jishu1,jishu 技术部、1组、共享软件 jishu2 技术部员工 jishu2,jishu 技术部、2组、共享软件 jishu3 技术部员工 jishu3,jishu 技术部、3组、共享软件 jishuzhuguan 行政部主管 jishuzhuguan,jishu 技术部、1组、2组、3组、共享软件 shangwu1 商务部员工 shangwu1,shangwu 商务部、共享软件 admin 管理员 admin 共享软件
配置
- 本次教程的服务器是一台安装
Centos7.6
的Linux服务器。
安装Samba服务
SSH登录服务器后输入如下命令:yum -y install samba samba-client
yum -y install vim
# 安装vim软件,方便后续修改文件关闭
Selinux
输入如下命令打开配置文件:vim /etc/selinux/config
找到
SELINUX=enforcing
并修改为SELINUX=disabled
,修改完成,按esc
键,再按:
键,输入wq
按回车键保存并退出,然后输入reboot
重启系统,生效Selinux设置。按需求创建目录
- 在根目录
/
下创建一个samba_data
目录,然后把所有部门的目录都创建在samba_data
下。
输入如下命令创建:cd /
# 切换到根目录
mkdir /samba_data
# 在根目录下创建samba_data目录
cd /samba_data
# 切换到samba_data目录
mkdir xingzhengbu caiwubu jishubu shangwubu soft
# 在samba_data目录下创建xingzhengbu、caiwubu、jishubu、shangwubu、soft五个目录
cd jishubu
# 切换到jishubu目录
mkdir group1 group2 group3
# 在jishubu目录下创建 group1、group2、group3三个目录 - 创建回收站目录,用于存放samba中被删除的文件,防止用户误删除导致找不到文件。
输入如下命令:cd /
# 切换到根目录
mkdir /data_trash
# 在根目录下创建data_trash目录
chmod 777 /data_trash
# 更改data_trash目录权限为777
- 在根目录
按需求创建用户和用户组
- 输入如下命令创建用户和用户组:
useradd -s /sbin/nologin xingzheng1
useradd -s /sbin/nologin caiwu1
useradd -s /sbin/nologin jishu1
useradd -s /sbin/nologin jishu2
useradd -s /sbin/nologin jishu3
useradd -s /sbin/nologin jishuzhuguan
useradd -s /sbin/nologin shangwu1
useradd -s /sbin/nologin admin
# 创建各个用户,其中 -s /sbin/nologin 是为了防止这些用户通过samba账号登录服务器
groupadd xingzheng
groupadd caiwu
groupadd jishu
groupadd shangwu
groupadd group1
groupadd group2
groupadd group3
# 创建对应文件夹的用户组 - 为每个创建的Samba用户设置密码,命令如下:
教程以测试为主,所有samba用户密码均设置弱密码:123456
smbpasswd -a xingzheng1
smbpasswd -a caiwu1
smbpasswd -a jishu1
smbpasswd -a jishu2
smbpasswd -a jishu3
smbpasswd -a jishuzhuguan
smbpasswd -a shangwu1
smbpasswd -a admin
# 每个命令输入后都会要求输入密码
- 输入如下命令创建用户和用户组:
修改各个目录所属组
目前各个目录所属组还是root
,需要修改为各个部门所属组。
输入如下命令:cd /samba_data
# 切换到根目录下的samba_data目录
chown root.xingzheng xingzhengbu
chown root.caiwu caiwubu
chown root.jishu jishubu
chown root.shangwu shangwubu
# 修改各个部门对应的目录所属组为对应的部门
cd jishubu
# 切换到samba_data目录下的jishubu目录
chown root.group1 group1
chown root.group2 group2
chown root.group3 group3
# 修改jishubu目录下三个组的目录对应的所属组修改目录权限
输入如下命令:chmod 777 /samba_data/soft
#修改共享软件(soft)目录的权限为 777
chmod 770 /samba_data/jishubu/group1
chmod 770 /samba_data/jishubu/group2
chmod 770 /samba_data/jishubu/group3
# 修改技术部各组的目录权限为 770配置Samba主配置文件
输入如下命令:cd /etc/samba
# 切换到samba目录
cp smb.conf smb.conf.bak
# 复制smb.conf文件并另存为smb.conf.bak文件
vim smb.conf
# 编辑smb.conf文件修改如下图所示:
在
cups options = raw
后添加如下图所示内容开启全局垃圾站回收:在
recycle:exclude = *.tmp|*.TMP
后添加如下图所示内容设置各个文件目录:完成上述步骤后,按
esc
键,再按:
键,输入wq
按回车键保存并退出。启动Samba服务并设置Samba服务器的自启动。
输入如下命令:systemctl start smb.service
# 启动Samba服务
systemctl enable smb.service
# 设置Samba服务开机自启动防火墙设置方通Samba服务
输入如下命令:firewall-cmd --permanent --zone=public --add-service=samba
# 放行Samba服务
firewall-cmd --reload
# 设重启防火墙验证
用户
admin
只能进入共享软件(soft)
目录,且能写文件进去;其它目录均不能访问.
访问财务部被拒绝,其他行政部、技术部、商务部也是被拒绝。共享软件(soft)
目录能够访问,并且能够存放和删除文件。删除的文件也成功放到回收站。
用户
jishu1
能进入技术部的group1
文件夹对文件读、写、执行
,但是不能进入group2
和group3
还有行政部、商务部
文件夹,能够访问共享软件(soft)
文件夹读取执行里面的文件,但是不能删除文件。
先给用户jishu1
授权进入group1
,命令如下:usermod -a -G jishu jishu1
# 添加用户jishu1到组jishu里
usermod -a -G group1 jishu1
# 添加用户jishu1到组group1里
systemctl restart smb
# 重启smb服务用户
jishuzhuguan
能进入技术部所有的文件夹,并且对技术部的所有减价都能进行管理,拥有读、写、执行
权限。
先给用户jishuzhuguan
授权,命令如下:usermod -a -G jishu jishuzhuguan
# 添加用户jishuzhuguan到组jishu里
usermod -a -G group1 jishuzhuguan
# 添加用户jishuzhuguan到组group1里
usermod -a -G group2 jishuzhuguan
# 添加用户jishuzhuguan到组group2里
usermod -a -G group3 jishuzhuguan
# 添加用户jishuzhuguan到组group3里
systemctl restart smb
# 重启smb服务
同样,用户jishuzhuguan
有权限能进入共享软件(soft)
并且有读、执行
权限,但没有写
权限,不能放入或者删除文件夹里的文件。
总结
- 配置Samba,需要提前确认需求,例如需要什么目录以及各个用户权限如何。
- 一般遇到Samba无法访问的时候,很多时候不会是Samba配置错误,而是Linux本身的权限限制,例如Selinux是否关闭,防火墙是否开启、放通对应的策略和端口等等。
- 关于验证权限是否设置成功,建议给所有权限,然后逐个测试,再进一步针对需求进行限制。
最后
- 关于如何在 Centos7 上配置Samba以及如何对用户权限设置就到这里了,总体还是要根据实际情况来搞。
- 祝大家配置成功,并且学习到了如何设置,再见👋。