1. 程式人生 > >Linux命令——getfacl、setfacl

Linux命令——getfacl、setfacl

簡介

ACL是Access Control List的縮寫,傳統的Linux許可權只能針對一個使用者、一個群組及非此群組的其他人設定許可權而已,無法針對單一使用者或個人來設計許可權。ACL可以對許可權進行更細緻的設定。一開始是unix-like作業系統的額外支援專案,近年來ACL幾乎已經預設加入在所有常見的Linux檔案系統的掛載引數中(ext2/ext3/ext4/xfs等等)。所以,你幾乎無須進行任何動作,ACL就可以直接使用。

下圖是Kernel載入時的資訊

可見,xfs這個檔案系統支援ACL

getfacl

選項與引數:

-m :設定後續的 acl 引數給檔案使用,不可與 -x 合用;
-x :刪除後續的 acl 引數,不可與 -m 合用;
-b :移除“所有的” ACL 設定引數;
-k :移除“預設的” ACL 引數,關於所謂的“預設”引數於後續範例中介紹;
-R :遞迴設定 acl ,亦即包括次目錄都會被設定起來;
-d :設定“預設 acl 引數”的意思!只對目錄有效,在該目錄新建的資料會引用此預設值

針對特定使用者設定ACL

u:[使用者帳號列表]:[rwx]

針對特定群組設定ACL

g:[群組列表]:[rwx]

設定有效許可權(effective permission)

m:[rwx]

mask可以理解為允許的最大許可權

ACL許可權繼承

使用上述方式對目錄設定許可權時,在該目錄下建立子檔案,字目錄是不會繼承父母來ACL許可權的。要想做到繼承許可權,在設定ACL許可權的時候必須指定-d引數,即修改修改預設許可權。

getfacl