Linux笔记(41)——ACL权限

来源:互联网 发布:手机淘宝历史价格查询 编辑:程序博客网 时间:2024/05/18 00:20

  • ACL权限介绍
  • 查看分区ACL权限是否开启
  • 临时开启分区ACL权限
  • 永久开启分区ACL权限
  • 设定ACL权限
  • 查看ACL权限
  • 最大有效权限
  • 删除ACL权限
  • 递归ACL权限
  • 权限溢出
  • 默认ACL权限

ACL权限介绍

假设现有一个电影文件夹/films,它的权限如下

所有者jack 所属组student 其他人other rwx rwx ---


这时候,有一个人叫隔壁老王,他也想看访问这个文件夹,我们准备只给他rx权限,不给他w权限,那么该怎么办?将他归入student组?显然不行,因为student有w权限。

为了解决这种身份不足而难以分配权限的问题,所以才有了ACL权限

查看分区ACL权限是否开启

ACL权限其实是作用于分区的
dumpe2fs -h /dev/sda5

dumpe2fs命令是查询指定分区详细文件系统信息的命令

-h表示仅显示超级块中信息,而不显示磁盘块组的详细信息

执行该命令,输出的信息中如果有下图中圈出来的一行,说明该分区支持ACL,也就是ACL是开启的
这里写图片描述

临时开启分区ACL权限

如果ACL未开启,我们可以手动开启
mount -o remount,acl /dev/sda5

永久开启分区ACL权限

vim /etc/fstab

这里写图片描述

图中的defaults表示默认权限,我们可以加上,acl 表示加上acl权限

然后重新挂载或者重启系统,使其生效
mount -o remount /dev/sda5

设定ACL权限

setfacl 选项 文件名

这里写图片描述

给user1赋予acl权限:
setfacl -m u:用户名:权限 文件
setfacl -m u:user1:rx /hehe

如果是给用户组设定acl权限:
setfacl -m g:用户名:权限 文件

赋予acl权限后,查看文件信息会发现权限后面多了个加号,表示该文件有acl权限
这里写图片描述

查看ACL权限

getfacl 文件名

这里写图片描述

最大有效权限

查看ACL权限时,我们发现了一个mask值,如图
这里写图片描述

mask是用来指定最大有效权限的。如果我们给用户富裕了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限

什么是“相与”?

权限1 权限2 相与的结果 r r r r - - - r - - - -

假如mask为rw-,那么我无论赋予一个用户什么权限,想与之后,该用户也不可能有x权限

修改mask值为rw:
setfacl -m m:rw 文件名

删除ACL权限

删除指定用户的acl权限
setfacl -x u:用户名 文件名

删除指定用户组的acl权限
setfacl -x g:组名 文件名

删除所有acl权限setfacl -b 文件名

递归ACL权限

假如有个/hehe文件夹,该文件夹下有多个文件。现在我们不仅想让某个用户对/hehe这个文件夹有ACL权限,也想让他对该文件夹下所有文件都有ACL权限,那么就可以使用递归选项-R来一次赋予

如:setfacl -m u:user1:rwx -R /hehe

注意:递归只能针对目录,不能针对文件

权限溢出

x权限对于目录来说是进入这个目录,对于文件来说是执行这个文件的权限。

如果对/hehe文件夹赋予x权限,是想拥有进入这个文件夹的权限。但是递归赋予后,将会导致该文件夹下所有文件都赋予了x权限,这是不合理的。像这种权限给得过大了的情况,叫做权限溢出。

使用ACL权限递归方法,必须忍受权限溢出的问题

默认ACL权限

默认ACL权限的作用是:如果给父目录设定了默认的ACL权限,那么该目录下所有新建的子文件都默认都拥有该目录的ACL权限

设置默认acl权限,主要就是加上d,d表示default
setfacl -m d:u:user1:rw -R /hehe

该命令针对文件不会报错,但是没有意义。

0 0
原创粉丝点击