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