某公司需要搭建内网存储服务器,供给不同部门员工进行业务访问,现需求如下:
有四个文件夹,【财务部】【美术部】【策划部】【共享软件】,要求:
1、财务部、美术部和策划部的员工账号,互相独立,只能访问自己部门的文件夹,并且能读、写、执行;
2、所有员工都能访问共享软件soft,但只能读和执行,不能写;
3、策划部的文件夹下,有g1、g2和g3,三个项目组,要求策划部,只有自己项目组的成员才能访问自己项目组的文件夹,同时,策划部主管能访问所有项目组的文件夹;
4、所有文件夹都采用垃圾站回收,防止用户误删除文件;
5、管理员可以对soft文件夹进行读、写、执行操作。
显然,按照需求,不同部门的员工,拥有的权限是不一样的;同部门的员工,也拥有不同的权限,因此,我们简单列个表格
用户名 |
身份 |
所属组 |
授权目录 |
caiwu1 |
财务部员工 |
caiwu1, caiwu |
caiwubu, soft |
meishu1 |
美术部员工 |
meishu1, meishu |
meishubu, soft |
cehua1 |
策划部1组 |
cehua1, cehua |
cehuabu, g1, soft |
cehua2 |
策划部2组 |
cehua2, cehua |
cehuabu, g2, soft |
cehua3 |
策划部3组 |
cehua3, cehua |
cehuabu, g3, soft |
cehuazhuguan |
策划部主管 |
cehuazhuguan, cehua |
cehuabu, g1, g2, g3, soft |
admin |
管理员 |
admin |
soft |
明确了各个用户对不同目录的权限后,我们开始进行samba的配置
服务器预安装CentOS 7 1810,这是一台全新纯净的linux服务器,刚装好的系统
同时安装vim软件,方便后面的配置文件修改
yum -y install samba samba-client vim
vim /etc/selinux/config
保存并退出,reboot重启linux,生效selinux。
我们在根目录下创建一个data目录,再把所有部门的目录,都创建在data下
mkdir /data
cd /data
mkdir caiwubu cehuabu meishubu soft
cd cehuabu
mkdir g1 g2 g3
在根目录下创建data_trash目录,这个用于我们samba回收站存放用户误删除的文件
mkdir /data_trash
chmod 777 /data_trash
为了防止samba用户登录服务器,必须-s添加此参数
useradd -s /sbin/nologin caiwu1
useradd -s /sbin/nologin meishu1
useradd -s /sbin/nologin cehua1
useradd -s /sbin/nologin cehua2
useradd -s /sbin/nologin cehua3
useradd -s /sbin/nologin cehuazhuguan
useradd -s /sbin/nologin admin
groupadd caiwu
groupadd meishu
groupadd cehua
groupadd g1
groupadd g2
groupadd g3
密码按需求设置,这里统一用123456弱口令密码做测试使用
smbpasswd -a caiwu1
smbpasswd -a meishu1
smbpasswd -a cehua1
smbpasswd -a cehua2
smbpasswd -a cehua3
smbpasswd -a cehuazhuguan
smbpasswd -a admin
cd /data
chown root.caiwu caiwubu
chown root.cehua cehuabu
chown root.meishu meishubu
cd cehuabu
chown root.g1 g1
chown root.g2 g2
chown root.g3 g3
chmod 777 /data/soft
chmod 770 /data/cehuabu/g1
chmod 770 /data/cehuabu/g2
chmod 770 /data/cehuabu/g3
在配置之前,先将主配置文件备份一份,防止误操作
cd /etc/samba
cp smb.conf smb.conf.bak
vim smb.conf
配置【财务部】文件夹
配置【美术部】文件夹
配置【策划部】文件夹
配置【soft】文件夹
全局开启垃圾站回收
保存并退出
systemctl start smb.service
systemctl enable smb.service
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload
目标1:admin用户只能进入soft目录,且能写文件进去;其它目录均不能访问
美术部已被拒绝访问,财务部和策划部也是
soft能进入,能存放文件,并删除
删除的文件已放到回收站
目标2:cehua1能进入策划部的g1且能够读写,g2和g3不能进入,能执行soft目录里的程序,不能删除soft目录下的文件
授权cehua1进入g1的权限
usermod -a -G cehua cehua1
usermod -a -G g1 cehua1
systemctl restart smb
目标3:cehuazhuguan能进入策划部所有项目组的文件,并能管理所有项目组的文件
授权cehuazhuguan
usermod -a -G cehua cehuazhuguan
usermod -a -G g1 cehuazhuguan
usermod -a -G g2 cehuazhuguan
usermod -a -G g3 cehuazhuguan
systemctl restart smb
g1正常进入
删除g1的文件
到g2创建文件
同样,策划主管也能执行soft里面的软件安装包
1、samba的配置,首先要明确需求,确定好目录结构和用户权限;
2、目录权限配置时,先放通所有权限,逐个测试能否正常使用,再按照需求,逐个限制权限;
3、当samba无法访问时,多检查linux配置,很多时候并不是samba配置限制了,是linux本身的权限限制了。比方说selinux是否关闭,防火墙是否开启、放通对应的策略和端口等等。