默认ACL权限和递归ACL权限-linux35

默认ACL权限和递归ACL权限

上节我们学习的是ACL最大有效权限和删除ACL权限,今天我们继续学习ACL默认权限和递归ACL权限
一、递归ACL权限
递归的意思在所有编程语言里都是代表设置了父目录的同时子目录或子文件都同时生效。

1、那么ACL权限递归同样道理,就是在设置父目录ACL权限时,所有子文件和子目录也同时会拥有相同的ACL权限。
[root@localhost ~]# setfacl -m u:用户名:权限 -R 目录名
例如:
我们在/project目录里新建两个用户,然后我们用
[root@localhost ~]# setfacl -m u:st:rx /project/
这样来设置这个st用户对这个目录的ACL权限,我们可以查看目录里面的文件的权限是不是没有ACL权限啊,如图:
设置acl权限
也就是我们只给目录设置了ACL,而里面的文件没有随着父目录而改变。

那么我们按照递归的方法来设置这个目录:
[root@localhost ~]# setfacl -m u:st:rx -R /project/
如图:
设置递归ACL权限
看,是不是这里目录里面的两个文件也都具有了ACL权限了啊。
二、默认ACL权限
上面我们利用递归的方法设置了/project目录的ACL权限后里面的文件也都跟着具备了ACL权限。
但是这个时候如果我在目录里面再从新建一个文件,那么这个文件是不会有acl权限的,因为他是在设置了父目录的acl权限后才建立的。如图:
递归ACL不作用于新建文件

那么这样一来如果我们每新建一个文件都需要从新设置一下ACL权限,这样岂不是很麻烦,所以就用到了ACL的默认权限。

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
设置方法:
[root@localhost ~]# setfacl -m d:u:用户名:权限 目录名
这样就解决了上面的问题。
好的,那么我们来设置一下:
[root@localhost ~]# setfacl -m d:u:st:rx /project/
然后我们再新建一个文件看看是不是他也同时具备了ACL权限。
如图:
默认ACL权限和递归ACL权限
但是大家会发现两个问题:
首先里面的cde文件还是没有ACL权限,为什么呢?因为他是在执行ACL默认权限命令之前设置的,所以没有起作用,设置默认ACL权限只对新建的用户有作用。
其次,我们利用递归命令设置的ACL权限时,子文件会同时具备父目录的执行权限。因为递归的作用就是同时给父目录和子目录或子文件同时设置权限,所以同时给目录里的文件也设置了rx权限。而设置了默认的ACL权限后,新建的文件是不具备执行权限的。因为任何新建的文件默认都是不带执行权限的。

另外还有一点需要注意,就是这两个命令都是针对目录的,是不能给文件设置的,因为文件是不具备子文件的。

本教程原创作者:mageo,出自每集博客,尊重作者劳动,转载请注明出处:http://www.ql2015.cn,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值