ACL权限复习
最近工作中用到了ACL權限,一時有點抓瞎,感覺什么命令都學了又什么命令都沒記詳細,不知道大家有沒有這種感覺。身體被掏空啊~~~
晚上回家自己溫習了一遍ACL權限的簡單實用,發篇博客記錄一下。
首先說一下什么是acl權限?
如上圖所示,目錄/project權限為770。此時有一個zhao的用戶需要對/project目錄有 r-x 權限,他不是屬主,也不在該目錄的屬組中,若通過其他人權限為zhao調整的話,那么不光是zhao用戶對 /project 目錄有 r-x 權限,同時該計算機中所有的用戶都具有了與zhao相同的權限,不妥啊。
此時可以通過設置 /project 的 acl 權限,單獨讓zhao用戶對 /project 目錄有 r-x 權限。
一、查看當前分區系統是否支持 ACL 權限
我用的系統是 2.6內核的CentOS6.3版本,linux 2.6內核開始系統默認已經支持ACL權限了,不過為了以防萬一,還是記錄一下,留著備用。
這是我的虛擬機,我只分了/、/boot、所以 /project 肯定是在"/"分區中
通過 # dumpe2fs h /dev/sda2 得知當前系統支持ACL 權限。若文件不支持,可更改 /etc/fstab 文件,使其開機自動掛載(下圖)
二、設定ACL權限
格式:
# setfacl 選項 文件名
選項: -m 設定ACL權限
-x 刪除指定ACL權限
-b 刪除所有ACL權限
-d 設定默認ACL權限
-k 刪除默認ACL權限
-R 遞歸設定ACL權限
實例:以第一張圖片為例,給 /project 目錄添加用戶zhao的r-x權限
[root@test ~]# mkdir /project
[root@test ~]# useradd st
[root@test ~]# groupadd tgroup
[root@test ~]# chown root:tgroup /project
[root@test ~]# chmod 770 /project
[root@test ~]# ll -d /project
drwxrwx--- 2 root tgroup 4096 Oct 24 08:54 /project
[root@test ~]# setfacl -m u:st:rx /project
[root@test ~]# ll -d /project/
drwxrwx---+ 2 root tgroup 4096 Oct 24 08:54 /project/
操作完成,# getfacl /project 檢查權限是否添加成功
給用戶組設定ACL權限
# setfacl m g:tgroup2:rx /project 給 tgroup2 組設定對 /project 的 rx 權限
三、最大有效權限 mask
mask 是用來指定最大有效權限的。如果給用戶賦予了ACL權限,是需要和mask的權限"相與"才能得到用戶的真正權限。
假如 /project 目錄的mask權限設定為 r-x,那么即使ACL權限設定為rwx,也不會有 w 權限。
四、刪除ACL權限
# setfacl x u:用戶名 文件名 刪除指定用戶的ACL權限
# setfacl x u:組名 文件名 刪除指定用戶組的ACL權限
# setfacl b 文件名 刪除文件所有的ACL權限
五、遞歸ACL權限(針對目錄)
遞歸是父目錄在設定ACL權限時,所有子文件的子目錄也會擁有相同的ACL權限
# setfacl m u:用戶名:權限 R 文件名
六、默認ACL權限(針對目錄)
默認ACL權限的左右是如果給父目錄設定了默認ACL權限,那么父目錄中所有新建的子文件都會繼承父目錄的ACL權限
# setfacl m d:u:用戶名:權限 文件名
遞歸和默認ACL權限的區別在于,遞歸改變目錄中已經創建的文件,而默認ACL是將設定新創建的文件
本文轉自 ? mlwzby ? 51CTO博客,原文鏈接:http://blog.51cto.com/aby028/1865189
總結
- 上一篇: QComboBox可以随意设置itemD
- 下一篇: Linux学习之CentOS(五)--让