企业级文件服务器搭建

项目背景
你是某公司的网络管理员,公司一台刀片服务器运行RHEL9。公司大部分员工的的电脑运行Windows。按照企业要求配置文件服务器。

项目要求
1.所有员工都能够在公司内流动办公,但不管在哪台电脑上工作,都要把自己的文件存在samba文件服务器上。
2.制造部、财务部、管理部,都有各自的文件目录。

结构图

企业用户账户要求

项目实施过程

安装samba服务

yum install -y samba

快速创建目录

mkdir /DocRoot/{公共区,交换区} -p
mkdir /DocRoot/{管理部,财务部,制造部}/{对外,公共,受控} -p

创建组

groupadd cwb
groupadd glb
groupadd zzb
groupadd netb
groupadd leader

创建各组的所属员工

## 创建管理部员工
useradd -g glb -s /sbin/nologin glb01
useradd -g glb -s /sbin/nologin glb02
useradd -g glb -s /sbin/nologin glb03

## 创建财务部员工
useradd -g cwb -s /sbin/nologin cwb01
useradd -g cwb -s /sbin/nologin cwb02
useradd -g cwb -s /sbin/nologin cwb03

## 创建制造部员工
useradd -g zzb -s /sbin/nologin zzb01
useradd -g zzb -s /sbin/nologin zzb02
useradd -g zzb -s /sbin/nologin zzb03

## 创建领导组员工
useradd -g leader -s /sbin/nologin leader01
useradd -g leader -s /sbin/nologin leader02
useradd -g leader -s /sbin/nologin leader03

## 创建网络部员工
useradd  -g  netb  -s  /sbin/nologin  netb01
useradd  -g  netb  -s  /sbin/nologin  netb02
useradd  -g  netb  -s  /sbin/nologin  netb03

## 查看是否创建用户成功,是否各属主组一致
cat  /etc/passwd

将所有用户添加到samba

smbpasswd -a 用户名
## 查看已添加的samba用户
pdbedit  -L

权限分析

chmod
由于对外目录公司所有员工都可访问,所以部门目录要设置为755
对外目录全公司可访问,但不能修改,故设置为755
部门公共目录,只有本部门员工和领导层可访问,且不能改,故设为750
部门受控目录,只有主管和领导可以访问,故设置为700

chown
设置公共区域权限
公共区和交换区的管理都是由网络部维护的,所以可以使用acl赋予网络部读写执行权限
对外和公共目录都由本部门的文员负责,直接修改此目录的所有者为文员,由组权限5变为所有者权限7
受控目录由部门主管维护,所以设置受控目录所有者为主管

setfacl
领导属于other,other没有权限,但公共目录领导可访问,所以单独设置acl组权限
同理受控目录也需要为领导组设置组acl权限
财务部与管理部有指定访问人,所以要设置的是acl的用户权限

chmod 755 /DocRoot/
chmod 755 /DocRoot/公共区/
chmod 1777 /DocRoot/交换区/ //交换区要可以写但不可以删除他人文件所以要加粘滞位sticky bit=1

修改管理部文件夹权限(chmod)和文件夹所有者(chown)

chmod 755 /DocRoot/管理部/
chmod 755 /DocRoot/管理部/对外/
chmod 750 /DocRoot/管理部/公共/
chmod 700 /DocRoot/管理部/受控/
chown glb01:glb /DocRoot/管理部/受控/
chown glb02:glb /DocRoot/管理部/对外/
chown glb02:glb /DocRoot/管理部/公共/

修改财务部文件夹权限(chmod)和文件夹所有者(chown)

chmod 755 /DocRoot/财务部/
chmod 755 /DocRoot/财务部/对外/
chmod 750 /DocRoot/财务部/公共/
chmod 700 /DocRoot/财务部/受控/
chown cwb01:cwb /DocRoot/财务部/受控/
chown cwb02:cwb /DocRoot/财务部/对外/
chown cwb02:cwb /DocRoot/财务部/公共/

修改制造部文件夹权限(chmod)和文件夹所有者(chown)

chmod 755 /DocRoot/制造部/
chmod 755 /DocRoot/制造部/对外/
chmod 750 /DocRoot/制造部/公共/
chmod 700 /DocRoot/制造部/受控/
chown zzb01:zzb /DocRoot/制造部/受控/
chown zzb02:zzb /DocRoot/制造部/对外/
chown zzb02:zzb /DocRoot/制造部/公共/

Setfacl细分目录权限

setfacl -m g:netb:rwx /DocRoot/公共区/
setfacl -m g:netb:rwx /DocRoot/交互区/

## 管理部
setfacl -m g:leader:rx /DocRoot/管理部/公共
setfacl -m u:leader01:rx /DocRoot/管理部/受控

## 财务部
setfacl -m g:leader:rx /DocRoot/财务部/公共
setfacl -m u:leader01:rx /DocRoot/财务部/受控
setfacl -m u:leader03:rx /DocRoot/财务部/受控

## 制造部
setfacl -m g:leader:rx /DocRoot/制造部/公共
setfacl -m g:leader:rx /DocRoot/制造部/受控

修改samba配置文件将文件共享出去

vim /etc/samba/smb.conf

[公司文档]
        path = /DocRoot
        public = yes
        writable = yes

修改完配置文件要重启smb服务才会生效

systemctl restart smb.service
systemctl status smb.service //查询smb服务状态

selinux设置

semanage fcontext -a -t samba share t '/DocRoot(/.*)?'
ls -lZ /DocRoot/  # 查询目录安全上下文
restorecon -Rv /DocRoot/   # 刷新安全上下文
setsebool -P samba_enable_home_dirs on # 修改selinux布尔值 允许根目录访问

防火墙放行samba服务

firewall-cmd --add-serivce=samba  # 临时放行
firewall-cmd --add-serivce=samba --permanent # 永久放行
firewall-cmd --reload 

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论