基于普通文件或目录设置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::---

 

posted on 2020-08-14 18:42  星痕1216  阅读(151)  评论(0编辑  收藏  举报