ACL
--查看一个文件/文件夹的ACL设置
getfacl 文件名
--针对一个用户对文件进行ACL设置
setfacl -m u:nash_su:rwx 文件名 #两个冒号分隔成三部分u:添加一个用户权限设置,冒号后面是添加的用户,后面跟的是权限
--针对一个组对文件进行ACL设置:
setfacl -m g:training:rw 文件名 #同上只不过换成了g 组名
--删除一个ACL设置
setfacl -x u:nash_su 文件名
[root@zq ~]# useradd zq1 [root@zq ~]# groupadd pp [root@zq ~]# ls anaconda-ks.cfg initial-setup-ks.cfg [root@zq ~]# touch yy.net [root@zq ~]# ls anaconda-ks.cfg initial-setup-ks.cfg yy.net [root@zq ~]# getfacl yy.net # file: yy.net # owner: root # group: root user::rw- group::r-- other::r-- [root@zq ~]# setfacl -m u:zq1:rwx yy.net [root@zq ~]# getfacl yy.net # file: yy.net # owner: root # group: root user::rw- user:zq1:rwx group::r-- mask::rwx other::r-- [root@zq ~]# setfacl -m u:zq:r-x yy.net [root@zq ~]# getfacl yy.net # file: yy.net # owner: root # group: root user::rw- user:zq:r-x user:zq1:rwx group::r-- mask::rwx other::r-- [root@zq ~]# setfacl -m g:pp:r-x yy.net [root@zq ~]# getfacl yy.net # file: yy.net # owner: root # group: root user::rw- user:zq:r-x user:zq1:rwx group::r-- group:pp:r-x mask::rwx other::r-- [root@zq ~]# setfacl -x u:zq1 yy.net [root@zq ~]# getfacl yy.net # file: yy.net # owner: root # group: root user::rw- user:zq:r-x group::r-- group:pp:r-x mask::r-x other::r--
实例
----假设zq1用户、组如下:
组 | 用户 |
pp | zq1.aa |
pa | df.bb |
pb | er.cc |
pc | laoda |
现要求为各部门、员工建立相应的工作文件夹,要求如下:
所有目录、文件保存在统一的一个文件夹下
每个部门拥有一个独立的文件夹
不同部门之间不可访问各自文件夹
每个员工在所在部门文件下拥有一个所有文件夹
同部门不同员工之间可以查看各自文件夹内容,但不可修改,用户仅能够修改自己的内容
boss组的用户对所有组的文件均有访问权限,但无修改权限
[root@zq ~]# userdel -r zq1 [root@zq ~]# useradd -G pp zq1 [root@zq ~]# useradd -G pp aa [root@zq ~]# useradd -G pa df [root@zq ~]# useradd -G pa bb [root@zq ~]# useradd -G pb er [root@zq ~]# useradd -G pb cc [root@zq ~]# useradd -G pc laoda [root@zq ~]# cd / [root@zq /]# mkdi mkdict mkdir [root@zq /]# mkdir pyy.net [root@zq /]# cd pyy.net/ [root@zq pyy.net]# mkdir pp [root@zq pyy.net]# mkdir pa [root@zq pyy.net]# mkdir pb [root@zq pyy.net]# chgrp pp pp/ [root@zq pyy.net]# chgrp pa pa/ [root@zq pyy.net]# chgrp pb pb/ [root@zq pyy.net]# ls -l 总用量 0 drwxr-xr-x 2 root pa 6 5月 18 12:47 pa drwxr-xr-x 2 root pb 6 5月 18 12:47 pb drwxr-xr-x 2 root pp 6 5月 18 12:47 pp [root@zq pyy.net]# chmod o-rwx pa [root@zq pyy.net]# chmod o-rwx pb [root@zq pyy.net]# chmod o-rwx pp [root@zq pyy.net]# ls -l 总用量 0 drwxr-x--- 2 root pa 6 5月 18 12:47 pa drwxr-x--- 2 root pb 6 5月 18 12:47 pb drwxr-x--- 2 root pp 6 5月 18 12:47 pp [root@zq pyy.net]# chmod g+s pa [root@zq pyy.net]# chmod g+s pb [root@zq pyy.net]# chmod g+s pp [root@zq pyy.net]# ls -l 总用量 0 drwxr-s--- 2 root pa 6 5月 18 12:47 pa drwxr-s--- 2 root pb 6 5月 18 12:47 pb drwxr-s--- 2 root pp 6 5月 18 12:47 pp [root@zq pyy.net]# cd pa/ [root@zq pa]# mkdir df [root@zq pa]# mkdir bb [root@zq pa]# ls bb df [root@zq pa]# ll 总用量 0 drwxr-sr-x 2 root pa 6 5月 18 12:54 bb drwxr-sr-x 2 root pa 6 5月 18 12:54 df [root@zq pa]# chown bb bb [root@zq pa]# chown df df [root@zq pa]# ll 总用量 0 drwxr-sr-x 2 bb pa 6 5月 18 12:54 bb drwxr-sr-x 2 df pa 6 5月 18 12:54 df [root@zq pa]# cd .. [root@zq pyy.net]# cd pb [root@zq pb]# mkdir er [root@zq pb]# mkdir cc [root@zq pb]# ll 总用量 0 drwxr-sr-x 2 root pb 6 5月 18 12:57 cc drwxr-sr-x 2 root pb 6 5月 18 12:57 er [root@zq pb]# chown cc cc [root@zq pb]# chown er er [root@zq pb]# ll 总用量 0 drwxr-sr-x 2 cc pb 6 5月 18 12:57 cc drwxr-sr-x 2 er pb 6 5月 18 12:57 er [root@zq pb]# cd .. [root@zq pyy.net]# cd pp [root@zq pp]# mkdir zq1 [root@zq pp]# mkdir aa [root@zq pp]# ll 总用量 0 drwxr-sr-x 2 root pp 6 5月 18 12:58 aa drwxr-sr-x 2 root pp 6 5月 18 12:58 zq1 [root@zq pp]# chown aa aa [root@zq pp]# chown zq1 zq1 [root@zq pp]# ll 总用量 0 drwxr-sr-x 2 aa pp 6 5月 18 12:58 aa drwxr-sr-x 2 zq1 pp 6 5月 18 12:58 zq1 [root@zq pp]# cd .. [root@zq pyy.net]# ll 总用量 0 drwxr-s--- 4 root pa 24 5月 18 12:54 pa drwxr-s--- 4 root pb 24 5月 18 12:57 pb drwxr-s--- 4 root pp 25 5月 18 12:58 pp [root@zq pyy.net]# setfacl -m g:pc:rx pp [root@zq pyy.net]# setfacl -m g:pc:rx pa [root@zq pyy.net]# setfacl -m g:pc:rx pb [root@zq pyy.net]# getfacl Usage: getfacl [-aceEsRLPtpndvh] file ... Try `getfacl --help' for more information. [root@zq pyy.net]# getfacl pp # file: pp # owner: root # group: pp # flags: -s- user::rwx group::r-x group:pc:r-x mask::r-x other::---