17.文件访问控制列表

     基于普通文件或目录 设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限,更加精准地派发 限。

        另外,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL权限;

        若针对文件 设置了ACL,则文件不再继承其所在目录的ACL权限。 

setfacl

用于管理文件的 ACL 权限规则

使用setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。

针对目录文件需要使用-R递归参数;

针对普通文件则使用-m参数;

如果想要删除某个 文件的ACL,则可以使用-b参数。

-m 修改权限

-M 从文件中读取权限

-x 删除某个权限

-b 删除全部权限

-R 递归子目录

普通用户是无法进入/root目录中的,现在为普通用户单独设置一下权限:

[root@localhost ~]# setfacl -Rm u:trick:rwx /root
[root@localhost ~]# su - trick
[trick@localhost ~]$ cd /root
[trick@localhost root]$ ls
111       AA.conf          checkhosts.sh         key.sh      Templates
123       addusers.sh      c.txt                 linux       test1.sh
123.sh    anaconda-ks.cfg  Desktop               linux.txt   test.sh

        可以看到文件权限的最后一个点变成了加号+,这就意味着该文件已经设置了 ACL 

[root@localhost ~]# ls -ld /root
dr-xrwx---+ 23 root root 4096 Jan 27 00:29 /root

 允许某个组的用户都可以读写/etc/fstab 文件

[root@localhost ~]# setfacl -m g:trick:rw /etc/fstab

要清空所有ACL权限,请用-b参数;

要删除某一条指定的权 限,就用-x参数: 

[root@localhost ~]#  setfacl -x g:trick /etc/fstab

getfacl

用于查看文件的 ACL 权限规则


[root@localhost ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:trick:rwx
group::r-x
mask::rwx
other::---

ACL权限的设置都是立即且永久生效的,操作前提前备份 

        在备份/home目录上的ACL权限时,可使用-R递归参数,这样不仅能够把目录本 身的权限进行备份,还能将里面的文件权限也自动备份。加上输出 重定向操作,可以轻松实现权限的备份。需要注意,getfacl 在备份目录权限时不能使用绝对路径的形式,因此我们需要先切换到最上层根目录,然后再进行操作。

[root@localhost ~]# cd /
[root@localhost /]# getfacl -R home > backup.acl

        ACL 权限的恢复使用的是--restore 参数。由于在备份时已经指定是对/home 目录进行操作,所以不需要写对应的目录名称,它能够自动找到要恢复的对象:

[root@localhost /]# setfacl --restore backup.acl

你可能感兴趣的:(#,RHCE,Linux,redhat,RHCE,服务器)