Linux ACL 权限

ACL 是什么
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
ACL有什么用
既然是作为UGO权限管理的补充,ACL自然要有UGO办不到或者很难办到的本事,例如:
1:可以针对用户来设置权限
2:可以针对用户组来设置权限
3:子文件/目录继承父目录的权限
查询ACL功能是否启用(默认都启用)
启ACL功能
cat /boot/config-3.10.0-693.el7.x86_64 | grep -i xfs
这是centos7下的命令行
设置ACL
setfacl

参数 描述
-m: 设置后续acl参数,不可与-x合用
-x: 删除后续acl参数,不可与-m合用
-b: 删除全部的acl参数
-k: 删除默认的acl参数
-R: 递归设置acl,包括子目录
-d: 设置默认acl,只对目录有效
查询ACL
getfacl
Linux ACL 权限_第1张图片
更改 ACL 权限
-m 选项其实是在更改文件和目录的 ACL 权限
*当一个用户或组的 ACL 权限不存在时,-m 选项执行的是添加操作
*如果一个用户或组的 ACL 权限已经存在时,-m 选项执行的是更新操作。

我们重新创建一个 aclfile 文件,通过下面的命令设置 tester 用户对它的访问权限:
setfacl -m u:tester:rwx aclfile

Linux ACL 权限_第2张图片
这时 -m 选项是在添加 ACL 权限。然后我们修改 tester 用户的权限,移除其对 aclfile 的执行权限:
setfacl -m u:tester:rw aclfile
Linux ACL 权限_第3张图片
删除 ACL 权限
有添加就有删除,我们可以通过 setfacl 命令的 -x 选项来删除指定用户或组的 ACL 权限,还可以通过 -b 选项来清除文件和目录上所有的 ACL 权限。
setfacl -b aclfile
Linux ACL 权限_第4张图片

你可能感兴趣的:(Linux ACL 权限)