# getfacl ./fstab
# file: fstab
# owner: root
# group: root
user::rw-
user:tom:rw-
user:mary:r--
user:bean:rwx
user:moto:---
group::r--
group:mary:rw-
mask::rwx
other::r--
现在看到的结果: 最终权限是精确匹配,只要找到匹配的条目就马上停止匹配
例子3:
# setfacl -m user:tom:rw,user:mary:r,user:bean:rwx,user:moto:---,group:mary:rw,mask::rw- ./fstab
# getfacl fstab
# file: fstab
# owner: mary
# group: mary
user::r-- <---mary是文件拥有者,匹配该条目,所以权限r,不受mask影响
user:tom:rw- <---tom精确匹配该条目,并且与 mask的权限去交集,权限rw
user:mary:r-- <---基本上没用
user:bean:rwx #effective:rw- <---bean精确匹配该条目,并且与 mask的权限去交集,权限rw
user:moto:---
group::r--
group:mary:rw- 与mask取交集
mask::rw-
other::r-- 不受mask影响
例子4:
拥有者:rwx
拥有组:r-x
moto: rwx
mask: r
other: r-x
setfacl -m user::rwx,group::rx,user:moto:rwx,mask::r,other::rx fstab
# file: fstab
# owner: mary
# group: mary
user::rwx
user:moto:rwx #effective:r--
group::r-x #effective:r--
mask::r--
other::r-x
# id tom
uid=501(tom) gid=501(tom) groups=501(tom),502(mary)
没有精确匹配条目,而且角色是拥有组的成员,所以权限group::r-x和mask::r--交集
# id mary
uid=502(mary) gid=502(mary) groups=502(mary)
文件拥有者,权限直接取user::rwx,不受mask影响
# id bean
uid=503(bean) gid=502(mary) groups=502(mary)
没有精确匹配条目,而且角色是拥有组的成员,所以权限group::r-x和mask::r--交集
# id moto
uid=504(moto) gid=504(moto) groups=504(moto)
与user:moto:rwx 匹配,但需要与mask去交集,最后权限r
setfacl -b 去掉访问控制列表的设定
setfacl -d .... 目录 <---该目录下所有文件或者子目录都自动继承该设定
setfacl -R 目录 <--把该目录以及目录里的所有文件都递归修改
思考一下:ACL控制下的文件权限判断过程
是否文件拥有者---> 是否有精确匹配用户名的条目,如有就与mask取交集得到最终权限--->
判断是否是文件拥有组的成员,如果是,就与mask取交集得到最终权限---->是否有与该用户匹配的组的条目,如有就与mask取交集得到最终权限--->就是其他人的权限
建立用户 user1,user2,user3 ,user4 ,身份是这样的
user1 gid=user1 附加组: admin
user2 gid=user2 附加组: admin
user3 gid=user3
user4 gid=admin
新建一个文件,文件是属于 user1:admin ,要求 user1 可以读写执行,user2 可以读写文件
admin组可以读执行 ,user3只读
rw-,r--,r-- user1:admin file_1
setfacl -m user:user1:rwx,user:user2:rw-,group:admin:r-x,other::r-- file_1
chmod u=???,o=??? file_1 <---改完之后和访问控制列表一样
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24920726/viewspace-678065/
,如需转载,请注明出处,否则将追究法律责任。