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

group::rwx

mask::rwx

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 所示:

表 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

other::—

不过,我们一般不更改 mask 权限,只要赋予 mask 最大权限(也就是 rwx),则给用户或群组设定的 ACL 权限本身就是有效的。

linux 权限 mask,Linux mask有效权限详解相关推荐

  1. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

  2. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  3. 阿里云linux centos 一键部署web环境--图文详解

    阿里云linux centos 一键部署web环境--图文详解 标签: linux阿里云一键部署 2017-04-15 12:28 386人阅读 评论(0) 收藏 举报  分类: linux(11)  ...

  4. Linux配置启动挂载:fstab文件详解

    Linux配置启动挂载:fstab文件详解 [日期:2014-12-23] 来源:Linux社区 作者:aceking10 [字体:大 中 小] fstab文件介绍 fstab文件包含了你的电脑上的存 ...

  5. unix/linux命令“ls -l”选项输出结果详解

    from: http://hi.baidu.com/hoxily/item/12e2a02d03f77e0942634a8e unix/linux命令"ls -l"选项输出结果详解 ...

  6. Linux系统7个运行级别图文详解

    Linux系统7个运行级别图文详解 当安装linux操作系统时将选择下列那一个操作 ______ A.选择 "图形登录方式" 设定系统开始运行级为4 B.选择 "文本登录 ...

  7. Linux(centos)系统各个目录的作用详解

    转自:Linux(centos)系统各个目录的作用详解 现在公司的服务器使用CentOS系统,在网上找到了这篇介绍linux各个目录的文章,觉得十分不错,所以拿来存个档. 整理之后如下: 文件系统的类 ...

  8. linux命令cp -a,linux命令_ls命令与cp命令详解(一)

    linux命令_ls命令与cp命令详解(1) 最近想详细熟悉下linux命令,学习笔记记录下: 今天主要学习的是目录操作,下面给大家介绍一下今天学到的几个命令: 1.ls命令 功能:显示文件或者目录信 ...

  9. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  10. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

最新文章

  1. C语言程序设计 细节总结(链表)
  2. R语言基于信息价值IV(Information Value)和证据权重WOE(Weights of Evidence)进行特征筛选(feature selection)
  3. 解决Jira和Confluence访问打开越来越缓慢问题
  4. Nginx正则表达式之匹配操作符详解
  5. Element-UI 表单验证规则rules 配置参数说明
  6. 数据仓库建模与ETL实践技巧
  7. sqlalchemy学习
  8. Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1696 1024)
  9. JavaScript学习笔记(八)
  10. Levenberg-Marquardt算法简介和C++实现
  11. linux shell 脚本 入门到实战详解[⭐建议收藏!!⭐]
  12. 2022考研复习第二十三周
  13. php oop思想
  14. 解决Idea 出现 Could not autowire.. 错误
  15. 只因一段代码全公司200多人被捕,爬虫敲响警钟!
  16. JAVA登录界面学生和老师_学生信息管理系统之第三篇登录界面java代码
  17. 数值计算大作业:非线性方程求根(二分法、牛顿法、弦截法在Matlab实现)
  18. L2范数-欧几里得范数
  19. java初学求一个数的绝对值
  20. 4 种最安全的 MacBook 电池更换选项

热门文章

  1. segment fault
  2. 【APP】centos 5.X安装网络和系统监控管理平台--OpenNMS
  3. YonStore应用+摩天知识,用友树立云生态新标杆
  4. [THUPC2019]不等式/[51Nod1598]方程最小值
  5. 使用SourceTree拉取代码出现Permission denied (publickey)
  6. CSRF, XSS, Sql注入原理和处理方案
  7. linux每日命令(19):locate 命令
  8. 2. tz师兄【附面试题总结】
  9. 有意思的前端函数面试题
  10. 基于zxing生成与解析二维码、条形码