基于普通文件或目录设置ACL 其实就是针对指定的用户或用户组设置文件或目录的操作权限。另外,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
1.setfacl :管理文件的ACL 规则,格式为“setfacl [参数] 文件名称”。
文件的ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。
针对目录文件需要使用-R 递归参数;
针对普通文件则使用-m 参数;
如果想要删除某个文件的ACL,则可以使用-b 参数。
举例:设置用户在/root 目录上的权限
[root@Centos test]# su - centos Last login: Fri Aug 14 14:29:34 CST 2020 on pts/2 [centos@Centos ~]$ cd /root -bash: cd: /root: Permission denied [centos@Centos ~]$ exit logout [root@Centos test]# setfacl -Rm u:centos:7 /root [root@Centos test]# su - centos Last login: Fri Aug 14 18:26:10 CST 2020 on pts/2 [centos@Centos ~]$ cd /root [centos@Centos root]$ ll total 8 -rw-rwx---+ 1 root root 1489 Jul 30 01:37 anaconda-ks.cfg drwxrwxr-x+ 2 root root 6 Jul 30 02:33 Desktop drwxrwxr-x+ 2 root root 6 Jul 30 02:33 Documents
文件的权限最后一个点(.)变成了加号(+),这就意味着该文件已经设置了ACL 了。
删除:
[centos@Centos root]$ exit logout [root@Centos test]# setfacl -b u:centos:7 /root setfacl: u:centos:7: No such file or directory [root@Centos test]# su - centos Last login: Fri Aug 14 18:37:27 CST 2020 on pts/2 [centos@Centos ~]$ cd /root -bash: cd: /root: Permission denied
2.getfac:显示文件上设置的ACL 信息,格式为“getfacl 文件名称”。
举例:
[root@Centos test]# setfacl -Rm u:centos:7 /root [root@Centos test]# getfacl /root getfacl: Removing leading '/' from absolute path names # file: root # owner: root # group: root user::r-x user:centos:rwx group::r-x mask::rwx other::---
看看天上,于是我去了满是风雪的地方