Cyber Coding Course

師其意,不泥其跡

關於setfacl

我想現在的Linux大多支援Access Control List (ACL)。在檔案系統ACL啟用的情況下,
我們可以設定額外的權限給不同的使用者或群組。
這讓我們更加自由的來設定不同使用者的檔案系統權限。

直接來看命令。
下方的u代表了設定share資料夾,給test的使用者有rwx權限。
setfacl -m u:test:rwx share/
換成g,則代表了,設定test的群組對share/資料夾有rwx權限。
setfacl -m g:test:rwx share/
如果要設定目錄下也含子目錄的所有檔案,參數是-R。(遞迴)
合起來輸入就是-Rm。

問題來了,如果這麼設定,全部的檔案都變成有執行的權限。所以如何設定
檔案是沒有x的權限,只有目錄才有x的執行權限(進入目錄的權限)。
非常簡單,我們可以用大寫的X搞定。
例如:
setfacl -Rm u:git:rwX /var/www
這樣就會有漂漂的顏色,而不是一片慘綠了。

另外提一下,我們用getfacl取得額外的檔案資訊。
例如:我用root設定了git使用者,如下權限。
setfacl -Rm u:git:rwX humanity-1.10.4/
使用git使用者查看

在上圖中,大家是否有注意到了,-rw-rw-r--+。在ls -l時,多了一個+
非常顯而易見,就代表了,這個檔案,有額外的ACL權限設定囉。

現在用getfacl images來看看images目錄的使用者(user)權限,是有執行權限的。

如果您喜歡這篇文章,請給我個Like吧? 

 

作者: Devin Yang