加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux mask有效权限细说

发布时间:2023-06-03 11:35:21 所属栏目:Linux 来源:
导读:前面,我们已经学习如何使用 setfacl 和 getfacl 为用户或群组添加针对某目录或文件的 ACL 权限。例如:[root@localhost /]# getfacl project#file: project <-文件名#owner: root <-文件的属主#group: tgroup <-文件

前面,我们已经学习如何使用 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 权限。

但是,如果把 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 权限本身就是有效的。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!