Linux學習之ACL權限詳解(十)
Linux系統ACL權限詳解
目錄
ACL權限簡介與開啟 查看與設定ACL權限 最大有效權限與刪除ACL權限 默認ACL權限和遞歸ACL權限
ACL權限簡介與開啟權限
ACL權限簡介
用戶權限管理始終是Linux系統管理中最重要的環節。大家對Linux/Unix的UGO權限管理方式一定不陌生,還有最常用的chmod命令。
為了實現一些比較復雜的權限管理,往往不得不創建很多的組,並加以詳細的記錄和區分。
有一種方法可以實現靈活的權限管理(文件的額外賦權機制)除了文件的所有者,所屬組和其他人,可以對更多的用戶設置權限,這就是訪問控制列表(Access Control List)。
開啟權限
ACL權限是需要分區支持的,默認情況下分區是支持的,如果不支持就需要開啟ACL權限。
這裏只做介紹,可以跳過,因為現在linux系統分區默認支持ACL。
兩種方法: 臨時開啟ACL權限: mount -o remount,acl / 永久開啟分區ACL權限 1.vi /etc/fstab 2.mount -o remount /
第一種方法很簡單,下面只介紹第二種方法
打開文件
在第一行有效行的defaults後面加上acl
然後重新掛載一次根分區
mount -o remount /
查看與設定ACL權限
設定ACL權限
setfacl [選項] 文件名
查看ACL權限
getfacle 文件名
實際演示
比如有如下場景:
某大牛在QQ群內直播講解Linux系統的權限管理,講解完之後,他在一個公有的Linux系統中創建了一個 /project 目錄,裏面存放的是課後參考資料。那麽 /project 目錄對於大牛而言是所有者,擁有讀寫可執行(rwx)權限,對於QQ群內的所有用戶他們都分配的一個所屬組裏面,也都擁有讀寫可執行(rwx)權限,而對於 QQ 群外的其他人,那麽我們不給他訪問/project 目錄的任何權限,那麽 /project 目錄的所有者和所屬組權限都是(rwx),其他人權限無。
問題來了,這時候直播有旁聽的人參與(不屬於QQ群內),聽完之後,我們允許他訪問/project目錄查看參考資料,但是不能進行修改,也就是擁有(r-x)的權限,這時候我們該怎麽辦呢?我們知道一個文件只能有一個所屬組,我們將他分配到QQ群所在的所屬組內,那麽他擁有了寫的權限,這是不被允許的;如果將這個旁聽的人視為目錄/project 的其他人,並且將/project目錄的其他人權限改為(r-x),那麽不是旁聽的人也能訪問我們/project目錄了,這顯然也是不被允許的。怎麽解決呢?
下面 我們 來完成這整個過程
第一步:創建一個/project目錄
第二步:新建兩個用戶(在這個場景裏屬於群內學員)
第三步:新建一個組
第四步:將兩個用戶添加到組裏面
第五步:更改目錄的所有者和所屬組
第六步:賦予權限770
第七步:查看權限
第八步:新建一個用戶 (別的群的學員)
第九步:給這個用戶設置ACL權限,權限為r-w
第十步:查看/project的ACL
最大有效權限與刪除ACL權限
最大有效權限
可能會有點不好理解,什麽意思呢?
如果A為mask權限 ,B為ACL權限,and為用戶的有效權限
其實到這裏,大家就會明白,mask權限是用來約束用戶權限的,如果我們給用戶給的ACL權限過大就不好了,所以我們事先把mask權限設置好,這樣用戶的有效權限就不會超過mask權限了。
查看與設置mask權限
查看mask權限
getfacl 文件名
設置mask權限
setfacl -m m:權限 文件名
刪除ACL權限
刪除指定用戶的 ACL 權限
setfacl -x u:用戶名 文件名
刪除指定用戶組的 ACL 權限
setfacl -x g:組名 文件名
刪除文件的所有 ACL 權限
setfacl -b 文件名
默認ACL權限和遞歸ACL權限
遞歸 ACL 權限
通過加上選項 -R 遞歸設定文件的 ACL 權限,所有的子目錄和子文件也會擁有相同的 ACL 權限。
setfacl -m u:用戶名:權限 -R 文件名
默認 ACL 權限
如果給父目錄設定了默認的 ACL 權限,那麽父目錄中所有新建的子文件會繼承父目錄的 ACL 權限。
setfacl -m d:u:用戶名:權限 文件名
Linux學習之ACL權限詳解(十)