linux 权限 mask,Linux mask有效权限详解
前面,我們已經學習如何使用 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有效权限详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统用xset命令,专 lin
- 下一篇: linux数据块的大小不一样,HDFS块