一图了解ACL执行流程
1、验证文件owner不受acl影响
root@yemo:/tmp/set# ls -ltotal 4-rw-rw----+ 1 yemo Debian-gdm 773 Jun 2 05:37 tes#ACL限制yemo权限,yemo是文件ownerroot@yemo:/tmp/set# setfacl -m u:yemo:r tesroot@yemo:/tmp/set# getfacl tes# file: tes# owner: yemo# group: Debian-gdmuser::rw-user:yemo:r--user:nidaye:---group::r--group:nimei:r-xgroup:nidaye:-w-mask::rwxother::---root@yemo:/tmp/set# echo "i am yemo momoda">>tesroot@yemo:/tmp/set# tail -1 tesi am yemo momoda#ACL对基本owner权限无影响
2、acl对指定用户(非文件owner)的权限
#两个用户分别是非yemo和yemo组的root@yemo:/tmp# id nimeiuid=1001(nimei) gid=1001(nimei) groups=1001(nimei)root@yemo:/tmp# id nidayeuid=1002(nidaye) gid=1002(nidaye) groups=1002(nidaye)root@yemo:/tmp/set# setfacl -m u:nidaye:- tesroot@yemo:/tmp/set# setfacl -m g:nimei:rx tesroot@yemo:/tmp/set# setfacl -m g:nidaye:w tesroot@yemo:/tmp/set# setfacl -m mask:rw tesnimei@yemo:/tmp/set$ tail -1 teshellonimei@yemo:/tmp/set$ echo "surprise~~">>tesbash: tes: Permission denied#文件tes权限为-rw-rw----+,验证用户nimei有read权限,没有write权限
3、验证acl用户属于多组时候的权限
#把nimei添加到组nidayenimei@yemo:/tmp/set$ echo "surprise---" >>tesnimei@yemo:/tmp/set$ tail -1 tessurprise---#同时候具有nimei和nidaye两个组的权限rw#只读取针对用户的权限而不是组的权限nidaye@yemo:/tmp/set$ echo "surprise" >>tesbash: tes: Permission denied
4、验证mask对acl影响
# file: tes# owner: yemo# group: Debian-gdmuser::rw-user:nidaye:---group::r--group:nimei:r-x #effective:r-- #mask是acl权限的上限,acl会自动去掉高于acl的权限group:nidaye:-w-mask::rw-other::---#ower:yemoyemo@yemo:/tmp/set$ echo "hello" >>tesyemo@yemo:/tmp/set$ tail -1 teshello#mask是acl权限的上限,acl会自动去掉高于acl的权限#新建用户hello属于nidaya组(w),Debian-gdm组(r)#查看权限hello@yemo:/tmp/set$ echo "hello world">>teshello@yemo:/tmp/set$ tail -1 teshello world#同时继承文件所属组和附加组的权限#修改mask会自动修改相关组的权限