一.ACL
ACL(Access Control List):主要目的是能提供传统的owner、group、others的read、write、execute权限之外的具体权限设置。ACL可以针对单一用户,单一文件或目录来进行权限管理。
二.设置和查看
设置ACL
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file
选项与参数
-m:设置后跟的ACL参数;
-x:删除后跟的ACL参数;
-b:删除所有的ACL设置参数;
-k:删除默认的ACL参数;
-R:递归设置ACL;
-d:设置默认ACL参数;
-n:不需要重新计算的有效权限掩码;
查看ACL
getfacl [-aceEsRLPtpndvh] file
选项与参数
-a:列出文件的ACL;
-d:列出默认的文件ACL;
-c:不显示文件默认ACL;
-e:列出有效的权限;
针对特定用户的设置
setfacl -m u:[user]:[rwx] file
针对特定用户组的设置
setfacl -m g:[group]:[rwx] file
针对有效权限mask的设置
setfack -m m:[rwx] file
针对默认权限的设置(通过目录来设置默认ACL权限设置,可以让这些属性继承到子目录下)
setfacl -m d:[ug]:[user|group]:[rwx] file
输出解释:
[root@localhost ~]# setfacl -m u:zhou:r test ============>设置用户zhou对文件test只有r的权限
[root@localhost~]# getfacl test ============>ACL查看
# file: test ==================>文件名
# owner: root ==================>文件所有者
# group: root ==================>文件所有者所属组
user::rwx ==================>文件所有者的权限
user:zhou:r-- ==================>特定用户zhou的权限(r--)
group::rwx ==================>针对文件所有者所属组的权限
mask::rwx ==================>文件的默认的有效权限
other::rwx ==================>其他人拥有的权限
有效权限:设置的ACL权限必须在mask中才能生效,所谓有效权限。如:
[root@localhost auth]# setfacl -m u:zhou:rx test1 ================>设置用户zhou对文件test1有rx权限
[root@localhost~]# setfacl -m m:r test1 ================>设置mask为r--
[root@localhost~]# getfacl test1
# file: test1
# owner: root
# group: root
user::rw-
user:zhou:r-x #effective:r--
group::r--
mask::r--
other::r--
由此可见:
user:zhou:r-x #effective:r--
明确告诉我们该文件有效权限是r,所以尽管对用户zhou设置了x权限,用户zhou还是不能执行该文件;
例:
[zhou@localhost~]$ setfacl -m u:zh:rwx test1 ==========>对用户zh设置对文件test1权限为rwx
[zhou@localhost~]$ getfacl test1
# file: test1
# owner: zhou ==========>文件所有者是用户zhou
# group: zhou
user::rw- ==========>所有者zhou对文件权限为rw
user:zhou:rwx ==========>设置用户zhou对该文件ACL权限为rwx
user:zh:rwx ==========>用户zh对该文件权限为rwx
group::r--
mask::rwx
other::r--
结果发现:zhou对该文件没有执行权限,而zh有,由此可见:
1.对于同一用户,文件本身具有的权限高于ACL权限;
2.对于不是文件所属者,ACL不受影响。