linux下acl許可權詳解

安裝軟體包

yum install -y acl

配置acl許可權
用於acl許可權管理的命令主要有兩個:

setfacl          //設定acl許可權
getfacl          //檢視acl權

首先來看setfacl
常用引數:

-b:刪除所有擴充套件的acl規則,基本的acl規則(所有者,群組,其他)將被保留。
-d:設定預設的acl規則
-R:遞迴的對所有檔案及目錄進行操作。
-m:修改檔案或目錄的acl規則。
-x:刪除指定acl規則。

以上只列出常用引數,詳細命令幫助可參考:http://man.linuxde.net/setfacl
舉個例子:想讓user1這個使用者對~/test目錄擁有全部許可權,除了修改所有者或所屬組之外還能怎樣呢?
且往下看。

setfacl -Rm u:user1:rwx ~/test             //使user1使用者對test目錄擁有全部許可權。

執行以上命令後user1使用者即可任意操作~/test目錄。
來看一下這條命令,setfacl,設定acl許可權、引數R代表遞迴應用,m修改許可權、u代表使用者,如果想賦予某個組acl許可權就用g,:後邊接的要賦予acl許可權的使用者名稱或組名(不填則修改所有者或所屬組的acl許可權),緊接著下一個冒號後面跟的就是要賦予這個使用者的許可權了、最後接要操作的目錄或檔名,就這麼簡單。
再來看一個例子:

setfacl -m d:u::rwx ~/test                //為test目錄下新建的檔案或目錄設定預設acl許可權,對所有使用者生效

如果寫成這樣:

setfacl -m d:u:user1:rwx ~/test

這條命令執行後可以達到什麼目的呢?我猜,聰明的讀者一定猜到了:是給user1建立的檔案或目錄設定預設acl許可權。
如果你是這樣想的,那麼恭喜你,猜錯了。
這條命令實際的意義其實是給所有使用者建立的檔案或目錄都加上user1這個使用者的rwx的acl許可權~
最後再來看下如何刪除acl許可權

setfacl -x d:u:user1 ~/test              //刪除~/test目錄中關於user1的預設acl許可權
setfacl -b ~/test                        //刪除~/test目錄上所有的acl許可權

檢視acl許可權
檢視acl許可權使用getfacl命令

getfacl ~/test                           //檢視~/test目錄的acl許可權

會輸入類似如下內容

另外,當我們執行ls -l時會發現,擁有acl許可權的檔案或資料夾其linux預設許可權後面多一個“+”號。

最後需要注意的是:linux預設許可權是優於acl許可權的,就是說當liux預設許可權和acl許可權同時存在時,系統會優先考慮linux預設許可權。

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha Code