马哥05-访问控制列表ACL

访问控制列表ACL

命令名setfacl-设置文件访问控制列表
setfacl,顾名思义就是设置文件的ACL规则。
而Acl(Access Control List)就是访问控制列表,最初好像是unix里面为了提供更高级的权限管理而搞出来的。可能是被chmod命令的3个权限控制无法满足,而被迫搞出来的吧!

setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
换句话说,setfacl可以更精确的控制权限的分配。
比如:让某一个用户对某一个文件具有某种权限。

这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问。

[root@localhost shell]# setfacl -m u:sun:rwx f1
[root@localhost shell]# ll f1
-rw-rwxr--+ 1 root root 0 Oct  8 11:00 f1 #可以看到当文件被设置了acl后,权限后面多了一个+号
[root@localhost shell]# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:sun:rwx
group::r--
mask::rwx #此处的mask设置的是除了所有者和自定义用户以外其他用户或组的最高权限(咱们可以把他理解为生活中的对车辆使用的限高杆)
other::r--

ACL的生效顺序:文件所有者,自定义用户,自定义组,所属组以及其他组

在某个文件被设置了acl之后,当再次使用chmod g+r|w|x 设置group的权限时,你设置的不再是group的权限了,你设置的而是acl当中mask的权限(限高杆)如下列:

[root@localhost shell]# ll f1
-rw-r-xr--+ 1 root root 0 Oct  8 11:00 f1 #这是组位置显示的权限为acl当中mask的权限:r-x
[root@localhost shell]# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:sun:rwx			#effective:r-x
group::r-- #这是我们真正group的权限
mask::r-x #这就是我们通过ll f1显示的group位置的权限
other::r--
[root@localhost shell]# chmod g+w f1 #按道理说我们通过这条命令实现的是给group添加w权限
[root@localhost shell]# ll f1
-rw-rwxr--+ 1 root root 0 Oct  8 11:00 f1 #可以看到我们好像已经给group添加了w权限了
[root@localhost shell]# getfacl f1
# file: f1
# owner: root
# group: root
user::rw-
user:sun:rwx
group::r-- #事实上并没有
mask::rwx #恰恰我们加的w权限是给acl当中的mask加上了
other::r--

setfacl参数

-m:设置后续acl参数
-x:删除后续acl参数
-b:删除全部的acl参数
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-d:设置默认acl

setfacl设置acl权限的示例

设置acl权限:
setfacl -m u:user:rwx filename
setfacl -m g:group:rwx filename
setfacl -m o:other:rwx filename

设置mask的话:
setfacl -m m::rwx filename

删除某个设置了acl权限的条目:
setfacl -x u:user: filename

清除所有设置了acl权限的条目:
setfacl -b filename

如果我们想要将file1的acl权限原封不动复制给file2的话可以使用以下方法
getfacl file1 | setfacl --set-file2==-

#在递归设置acl权限的时候需要将-R放在-m前面否则是无法实现的哦
#使用-d的话,就会把默认的都加上去,针对目录哦。
#可以使用getfacl filename 查看文设置了那些acl的条目
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值