Linux学习记录21——文件访问控制列表(ACL)

一.学习的内容

        前文讲解的一般权限、特殊权限、隐藏权限其实有一个共性—权限是针对某一类用户设置的,能够对很多人同时生效。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。通俗来讲,基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限,更加精准地派发权限。

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

1、setfacl命令

        setfacl命令用于设置文件的ACL权限规则。 命令格式:setfacl  [参数]  文件名称

        ACL权限提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制。使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数。setfacl命令的常用参数如表2所示。

表1 setfacl 命令参数及其作用
参数作用
-m修改权限
-M从文件中读取权限
-x删除某个权限
-b删除全部权限
-R递归子目录

         例如,我们原本是无法进入/root目录中的:

图1  用户linuxprobe 无法进入 /root 目录

         现在为普通用户单独设置一下权限,随后再切换到这位普通用户的身份下,现在能正常进入了:

图2  为普通用户单独设置权限

        但是现在有这样一个小问题—怎么去查看文件是否设置了ACL呢?常用的ls命令是看不到ACL信息的,但是却可以看到文件权限的最后一个点(.)变成了加号(+),这就意味着该文件已经设置了ACL。

图3  ls 命令查看文件信息点(.)变成加号(+)

2、getfacl命令

        getfacl命令用于查看文件的ACL权限规则。命令格式:getfacl  [参数]  文件名称

        下面使用getfacl命令显示在root管理员家目录上设置的所有ACL信息:

图4  查看/root文件的ACL权限

         ACL权限还可以针对某个用户组进行设置。例如,允许某个组的用户都可以读写/etc/fstab文件:

图5  为某个组设置权限并查看

        要清空所有ACL权限,请用-b参数;要删除某一条指定的权限,就用-x参数:

图6  删除指定权限

        ACL权限的设置都是立即且永久生效的,不需要再编辑什么配置文件,这一点特别方便。但是,这也带来了一个安全隐患。如果我们不小心设置错了权限,就会覆盖掉文件原始的权限信息,并且永远都找不回来了。

        操作前备份一下,总是好的习惯

        例如,在备份 /home 目录上的ACL权限时,可使用 -R 递归参数,这样不仅能够把目录本身的权限进行备份,还能将里面的文件权限也自动备份。另外,再加上第3章学习过的输出重定向操作,可以轻松实现权限的备份。

图7  -R 参数备份ACL权限

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

        直接使用 setfacl  --restore backup.acl 命令会出现报错,如下图所示:

图8  报错

         此时,我们需要进入到根目录下执行刚才的命令,并把备份文件路径改为绝对路径。

图9  恢复ACL权限

         下面,来实战以下是否会恢复ACL权限,先查看 /home 文件的ACL权限规则,之后再使用恢复权限命令,最后再次查看 /home文件的ACL权限。

图10   测试是否会恢复ACL权限

二.本次学习遇到的问题

三、问题的答案及解决办法

  • 18
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值