Linux命令——getfacl、setfacl
阿新 • • 發佈:2018-12-16
簡介
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