Linux之ACL权限设置

之前我用了两篇文章详细地讲述了如何创建用户以及用户组,接下来的这篇文章要和大家一起学习ACL的权限设置,可能有朋友已经注意到我的用词了,我说和大家一起学习!!!因为之前的内容我都掌握,所以和大家分享,而现在关于这个ACL我也不是很了解,所以借着这个机会我们一起深入学习!
一、ACL简介
ACL是Access Control List的英文缩写,你可以将之理解为访问控制列表。它的存在意义就是提供除了传统的属主、属组以及其他人的r、w、x权限之外的其他权限,它可以针对单一文件、单一用户或目录进行rwx的权限设置,比如有三个新用户,我需要这三个新用户都可以在同一个目录下工作,但三个目录还是拥有自己的家目录与基本的私有用户组,有没有觉得稍稍有些难度了?这个时候就需要使用ACL了。
目前,大部分的Linux系统都已经支持了ACL,我们可以输命令看一下:
在这里插入图片描述
从上面的图中,可以看到XFS已经支持ACL了,并且不用任何操作,就可以使用了。
二、ACL的设置技巧
关于如何设置与查看ACL是很简单的,只要会用下面这两个命令就可以了:
getfacl:获取某个文件/目录的ACL设置选项
setfacl:设置某个目录/文件的ACL规范
先来谈一谈最常见的设置方式,即针对单一用户的设置方式:
在这里插入图片描述
分析一下上面的这张图:首先创建了一个文件夹:1.test,然后我查看了这个新创建的文件的权限与属性,然后我使用了上面所提到的命令对这个文件的权限进行了修改,对‘gao’这个用户账号进行了权限设置,将权限设置为可读可执行,修改之后可以看到该文件的权限部分多了一个+,且与原本的权限(644)差别很大,目前是654.最不可思议的地方来了,接下来我又用这个命令再一次进行权限设置,不同的是这一次两个冒号之间的用户账号部分没有添加任何用户,所以此次的修改默认针对该文件拥有者。
接下来,我们用另一个命令去查看刚刚我们所有的设置
在这里插入图片描述
我用同样的命令在我的系统上得到了如下的结果,我们分析一下:第一行代表的是文件名,第二行与第三行分别代表文件的拥有者和所属用户组,第四行代表的是拥有者权限,因为在上面的设置中我们对拥有者使用“setfacl -m u :: rwx 1.test”进行过设置,所以此处的权限是rwx.第五行代表的是专门针对gao这个用户设置的权限,与文件拥有者不同,第六行则戴白哦用户组的权限,第七行指文件的默认有效权限,最后一行代表其他人拥有的权限。可能细心的朋友已经发现了,前面的三行都有#,后面几行都没有,这是为什莫呢?因为前面的三行的内容是文件的默认属性,后面的几行用户、用户组和有效权限的设置值。
然后我们看看针对用户组的设置
在这里插入图片描述
通过上面的例子,可以看到我的设置时成功的,liuliu这个用户组的权限已经被我设置成了RWX,最后来说一说这个mask权限,这个权限所代表就是用户或用户组设置的权限必须存在于mask的权限范围内才会生效,这样说也不会很明白,还是具体看一个例子吧。重点来了
在这里插入图片描述
大家一起看一看关于设置mask权限后的变化,首先我给mask权限设置了r:可读权限,然后你会看到user和group权限的那两行有了大变化,后面多出了用#打头的effective:r–,这说明什么?大家注意了,之前我们的设置是:user具有可读权限,group:liuliu具有rwx权限,但是现在有了mask的r–有效设置,就意味着哪怕group:liuliu原来具有wx权限也不管用,因为group的权限在mask的范围之内的部分才会生效。所以此时user和group:liuliu的实际权限就只是r–。所以呢,我们可以通过设置mask来设置权限的最大上限,避免不小心开放了某些权限给到不该给用户或用户组,但是以我个人来说,我一般都是给mask设置rwx权限,因为我会单独给其他的用户或用户组设置相应的权限。
这里再和大家回顾一下关于修改权限的相关知识点:修改文件的属性用chgrp(修改所属用户组),chown(修改用户),以及修改文件权限的chmod.
在这里插入图片描述
上面的图中我做了一下几个步骤,首先查看了1.test的权限,可以看到由于之前mask的设置,此时该文件的所有权限都是可读;于是使用“setfacl -m m:rwx 1.test” 将文件的mask 权限设置为rwx,最后使用chmod命令将文件的权限进行了修改。此时就能看到文件的权限已经发生了变化。

猜你喜欢

转载自blog.csdn.net/Gao068465/article/details/106711930