Linux ACL权限管理案例

Published on 2015 - 04 - 16

案例简介

某公司结构分为教研室(teach)、校长办公室(office)、财务部(finance)、行政部(admin)、市场部(market)。为了后期部署文件共享服务器,我们需要为每个部门创建各自独立的共享目录,根据要求为所有的普通员工创建各自独立的账户,这些账户仅需要读取权限即可,并为每个部门的负责人创建一个管理账户(管理员名称为Op_部门名称),这个账户要求可以进行读写操作。为了后期管理的方便,需要为每个部门创建与部门名称相同的组账户。

创建共享目录

mkdir -p /var/{teach,office,finance,admin,market}

创建组账户

groupadd teach
groupadd office
groupadd finance
groupadd admin
groupadd market

创建组管理员账户

useradd -g teach Op_teach
useradd -g office Op_office
useradd -g finance Op_finance
useradd -g admin Op_admin
useradd -g market Op_market

创建普通员工账户

useradd -g teach endy
useradd -g office lucy
useradd -g finance jacob
useradd -g admin jerry
useradd -g market marry

添加组管理员

gpasswd -A Op_teach teach
gpasswd -A Op_office office
gpasswd -A Op_finance finance
gpasswd -A Op_admin admin
gpasswd -A Op_market market
chown Op_teach.teach /var/teach
chown Op_office.office /var/office
chown Op_teach.finance /var/finance
chown Op_admin.admin /var/admin
chown Op_market.market /var/market
chmod 755 /var/{teach,office,finance,admin,market}

ACL访问控制权限

由于系统的基本权限是针对文档所有者,所属组或其它账户进行控制的,无法针对某个单独的账户进行控制,所以就有了ACL访问控制列表的概念,使用ACL我们可以针对单一账户设置文档的访问权限。

使用Linux ACL来控制文件权限

Linux使用getfacl来查看每个文件的ACL例如

getfacl /root/install.log

getfacl使用示例

setfacl -m u:user1:rw test.txt
#添加ACL条目,使用户user1对test.txt文件可读可写

setfacl -m g:user1:r test.txt
#添加ACL条目,使user1组对test.txt文件可读

setfacl -x g:user1:r test.txt
#删除user1组的ACL条目

setfacl -b test.txt
#删除所有附加的ACL条目