一图了解ACL执行流程

ACL权限_第1张图片

 1、验证文件owner不受acl影响

root@yemo:/tmp/set# ls -l
total 4
-rw-rw----+ 1 yemo Debian-gdm 773 Jun  2 05:37 tes

#ACL限制yemo权限,yemo是文件owner
root@yemo:/tmp/set# setfacl -m u:yemo:r tes
root@yemo:/tmp/set# getfacl tes
# file: tes
# owner: yemo
# group: Debian-gdm
user::rw-
user:yemo:r--
user:nidaye:---
group::r--
group:nimei:r-x
group:nidaye:-w-
mask::rwx
other::---
root@yemo:/tmp/set# echo "i am yemo momoda">>tes
root@yemo:/tmp/set# tail -1 tes
i am yemo momoda
#ACL对基本owner权限无影响

2、acl对指定用户(非文件owner)的权限

#两个用户分别是非yemo和yemo组的
root@yemo:/tmp# id nimei
uid=1001(nimei) gid=1001(nimei) groups=1001(nimei)
root@yemo:/tmp# id nidaye
uid=1002(nidaye) gid=1002(nidaye) groups=1002(nidaye)
root@yemo:/tmp/set# setfacl -m u:nidaye:- tes
root@yemo:/tmp/set# setfacl -m g:nimei:rx tes
root@yemo:/tmp/set# setfacl -m g:nidaye:w tes
root@yemo:/tmp/set# setfacl -m mask:rw tes

nimei@yemo:/tmp/set$ tail -1 tes
hello
nimei@yemo:/tmp/set$ echo "surprise~~">>tes
bash: tes: Permission denied
#文件tes权限为-rw-rw----+,验证用户nimei有read权限,没有write权限

3、验证acl用户属于多组时候的权限

#把nimei添加到组nidaye
nimei@yemo:/tmp/set$ echo "surprise---" >>tes
nimei@yemo:/tmp/set$ tail -1 tes
surprise---
#同时候具有nimei和nidaye两个组的权限rw
#只读取针对用户的权限而不是组的权限
nidaye@yemo:/tmp/set$ echo "surprise" >>tes
bash: tes: Permission denied

4、验证mask对acl影响

# file: tes
# owner: yemo
# group: Debian-gdm
user::rw-
user:nidaye:---
group::r--
group:nimei:r-x			#effective:r--   #mask是acl权限的上限,acl会自动去掉高于acl的权限
group:nidaye:-w-
mask::rw-
other::---
#ower:yemo
yemo@yemo:/tmp/set$ echo "hello" >>tes
yemo@yemo:/tmp/set$ tail -1 tes
hello
#mask是acl权限的上限,acl会自动去掉高于acl的权限

#新建用户hello属于nidaya组(w),Debian-gdm组(r)
#查看权限
hello@yemo:/tmp/set$ echo "hello world">>tes
hello@yemo:/tmp/set$ tail -1 tes
hello world
#同时继承文件所属组和附加组的权限
#修改mask会自动修改相关组的权限