ACL(Access Control List),要使用 ACL 必须要有文件系统的支持才行。
设定对象:
# dumpe2fs -h /dev/sda1 | grep "mount options"
Default mount options: user_xattr acl
设定对象:
- 使用者 (user): 可以针对使用者来设定权限;
- 群组 (group): 针对群组为对象来设定其权限;
- 默认属性 (mask):还可以针对在目录下新建文件或子目录时,规范其默认权限;
1、检查文件系统是否支持
# mount# dumpe2fs -h /dev/sda1 | grep "mount options"
Default mount options: user_xattr acl
2、手工启用
mount -o remount,acl /
3、设置用户的ACL权限
setfacl -m u:zz:rw 1
最后的数字1是测试使用的文件名称。
通过ls查看,在文件普通权限的group部分也会体现(显示所有用户的最大权限,比如用户a的权限是rw,用户b的权限是rwx,那么这儿会显示rwx)
# ll 1
-rw-rw----+ 1 root root 5 Nov 19 11:27 1
4、查看文件的ACL权限
getfacl 1
# file: 1
# owner: root
# group: root
user::rw-
user:zz:rw-
group::r--
mask::rw-
other::---
5、设置有效权限的掩码
setfacl -m m:r 1
实际权限将是两者(设置权限 & mask)“与”操作的结果
# ll 1
-rw-r-----+ 1 root root 5 Nov 19 11:27 1
6、验证(注意其中的#effective)
getfacl 1
..
user:zz:rw- #effective:r--
group::r--
mask::r--
other::---
7、针对目录设置缺省ACL
会被该目录下新增的文件或子目录继承(最后的数字2是测试使用的目录名称)
# setfacl -m d:u:zz:rx 2
# setfacl -m u:zz:rx 2
# ll -d 2
drwxr-x---+ 2 root root 4096 Nov 19 11:43 2