Linux之setfacl权限配置

查看setfacl版本

$ setfacl --version
setfacl 2.2.49

查看文件系统是否开启acl权限控制

$ tune2fs -l /dev/sda3 | grep option
Default mount options: acl

开启acl支持

方法一:修改mount选项
$ mount -o remount,acl /dev/vda3 /mnt/acltest
$ vim /etc/fstab
/dev/vda3 /mnt/acltest ext4 defaults,acl 0 0

方法二:使用tune2fs修改文件系统信息
$ tune2fs -o acl /dev/vda3 开启文件系统的acl选项
$ tune2fs -o ^acl /dev/vda3 取消文件系统的acl选项

给某个用户设置权限

$ setfacl -m u:joe:rx dir

给某个组设置权限

$ setfacl -m g:aclgp1:rx dir

取消某项权限

$ setfacl -x g:aclgp1 dir

查看某目录的权限

$ getfacl dir
# file: nbt/
# owner: root
# group: root
user::rwx
user:ftp_user:rwx
group::r-x
mask::rwx
other::r--
$ ls -lh dir #会看到一个+号
drwxrwxr--+ 7 root root 4.0K Nov 6 11:33 dir

注意事项
1,tune2fs开启acl后已是永久有效,无需再改fstab的mount选项。
2,对于组权限,setfacl设置的权限只对主组(即useradd -g或usermod -g的组)有效,对附加组(即useradd -G或usermod -aG的组)无效,即使文件的所有组已改为附加组。
3,setfacl和chmod设置的权限可以相互覆盖,当二者设置的权限不一致时,以使用getfacl看到的“#effective:”后的权限为准。对一个目录设置了setfacl后,不要再对其chmod,否则chmod的权限将覆盖先前setfacl的权限
4,对目录测试了setfacl后,mv后权限依旧在,但cp后权限不在了。

发表评论

您的电子邮箱地址不会被公开。