Linux mask有效权限解析
发布时间:2023-06-28 16:39:50 所属栏目:Linux 来源:
导读:前面,我们已经学习如何使用 setfacl 和 getfacl 为用户或群组添加针对某目录或文件的 ACL 权限。例如:
[root@localhost /]# getfacl project
#file: project <-文件名
#owner: root <-文件的属主
#group: tgro
[root@localhost /]# getfacl project
#file: project <-文件名
#owner: root <-文件的属主
#group: tgro
前面,我们已经学习如何使用 setfacl 和 getfacl 为用户或群组添加针对某目录或文件的 ACL 权限。例如: [root@localhost /]# getfacl project #file: project <-文件名 #owner: root <-文件的属主 #group: tgroup <-文件的属组 user::rwx <-用户名栏是空的,说明是所有者的权限 group::rwx <-组名栏是空的,说明是所属组的权限 other::--- <-其他人的权限 [root@localhost ~]# setfacl -m u:st:rx /project #给用户st设定针对project目录的rx权限 [root@localhost /]# getfacl project #file: project #owner: root #group: tgroup user::rwx user:st:r-x <-用户 st 的权限 group::rwx mask::rwx <-mask 权限 other::--- 对比添加 ACL 权限前后 getfacl 命令的输出信息,后者多了 2 行信息,一行是我们对 st 用户设定的 r-x 权限,另一行就是 mask 权限。 mask 权限,指的是用户或群组能拥有的最大 ACL 权限,也就是说,给用户或群组设定的 ACL 权限不能超过 mask 规定的权限范围,超出部分做无效处理。 举个例子,如果像上面命令那样,给 st 用户赋予访问 project 目录的 r-x 权限,此时并不能说明 st 用户就拥有了对该目录的读和访问权限,还需要和 mask 权限对比,r-x 确实是在 rwx 范围内,这时才能说 st 用户拥有 r-x 权限。 需要注意的是,这里将权限进行对比的过程,实则是将两权限做“按位相与”运算,最终得出的值,即为 st 用户有效的 ACL 权限。这里以读(r)权限为例,做相与操作的结果如表 1 所示: 读权限做相与操作 A B and r r r r - - - r - - - - 但是,如果把 mask 权限改为 r--,再和 st 用户的权限 r-x 比对(r-- 和 r-w 做与运算),由于 r-w 超出 r-- 的权限范围,因此 st 用户最终只有 r 权限,手动赋予的 w 权限无效。这就是在设定 ACL 权限时 mask 权限的作用。 大家可以这样理解 mask 权限的功能,它将用户或群组所设定的 ACL 权限限制在 mask 规定的范围内,超出部分直接失效。 mask 权限可以使用 setfacl 命令手动更改,比如,更改 project 目录 mask 权限值为 r-x,可执行如下命令: [root@localhost ~]# setfacl -m m:rx /project #设定mask权限为r-x,使用"m:权限"格式 [root@localhost ~]# getfacl /project #file:project #owner:root #group:tgroup user::rwx group::rwx mask::r-x <--mask权限变为r-x other::--- 不过,我们一般不更改 mask 权限,只要赋予 mask 最大权限(也就是 rwx),则给用户或群组设定的 ACL 权限本身就是有效的。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐