Linux权限管理之ACL

一、介绍:

二、使用:

查看分区 ACL 权限是否开启:dump2fs

包含acl说明支持ACL权限。

开启分区 ACL 权限

CentOS6新建分区需要手动开启,CentOS7默认开启。如果XFS文件格式默认支持ACL,如果是EXT格式的文件系统使用重新挂载的方式开启:

1)临时开启分区 ACL 权限

2)永久开启分区 ACL 权限需要配置文件 /etc/fstab。

3)查看ACL

设定 ACL 权限:setfacl 选项 文件名

①、给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名或者目录

②、给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名或者目录

三、示例:

// 设置cloud用户拥有/data目录及其子目录的全部权限

四、mask详解:

定义:只影响除所有者和other的之外的人和组的最大权限,即ACL user,group,ACL group三类。

格式:

一旦设置了ACL权限,原来组的权限就变为不可改的状态并且组的权限位也不在显示的是组的权限,而是mask的权限,即使利用chmod g=***的方法修改的也是mask的值,而不是原来组的权限。mask是实时更新的,每使用一次setfacl,mask更新一次,用户的权限需要与mask进行逻辑与运算后,才能变成有效的权限,用户或组的设置必须存在于mask权限设定范围内才会生效。所以在所有的ACL都设置好了之后,最后修改mask,限制ACL权限。

五、案例:

制作docker安全镜像,使用普通用户启动容器运行。此时挂载宿主机目录到容器中,容器用户没有权限对目录进行写操作,但是不能更改宿主机目录的权限,所以通过acl对目录设置容器用户的读写可执行权限。以此达到安全镜像和对目录操作的权限。设置方式如:

六、备份和恢复ACL:

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息。我们需要对ACL进行备份以至可以恢复ACL。

问题:

1.命令执行顺序的影响:

如上所示的目录结构,在setfacl -R参数设置了/acltest目录之后,新建/acltest/test目录,然后在用setfacl -d参数设置/acltest目录,这样的操作顺序会使得/acltest/test目录拥有setfacl设置的权限但是新建其子目录不会继承acl权限。通过使用setfacl -R和setfacl -d之后,再新建子目录都是继承/acltest的权限了。如果目录实时在变化,那么可以按顺序先后执行:setfacl -R -> setfacl -d -> setfacl -R来保证所有文件设置的权限。

另外:

在没有设置ACL的时候,权限的优先顺序为:owner > group > other。在加入了ACL之后,分为了owner,ACL user,group,ACL group,other五个类别,他们的优先顺序为:owner > ACL user> group 和ACL group谁的权限多,谁优先 > other

2.setfacl命令的性能影响:

对于设置容量已经很到的目录,执行setfacl -d时很快,几乎不会受到数据大小的影响,而setfacl -R则会因为目录越大执行越久,但是测试读写文件不会有问题。对于setfacl -R -b撤销命令也会有影响,但是执行比setfacl -R快很多。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/235148.html

(0)
联系我们
联系我们
分享本页
返回顶部