這一節進一步學習了檔案目錄的權限管理 acl。之前學習的權限管理比較粗犷,比方說,如果1個檔案的使用者超過4個,然後每個人都有不同的需求,那就很難處理。這種情況下,可以使用acl對單獨的使用者或組進行設定權限。
比如先切換到root使用者,建立一個aa檔案
看看aa預設權限
切換回beanxyz 使用者,試圖修改 aa,失敗
原因是beanxyz不屬于 root組,other裡面隻有讀的權限
可以通過getfacl進一步檢視檔案acl的資訊,通過setfacl來設定acl的資訊
看看文法,用的比較多的-m 修改,-x删除,-d預設
首先看看修改使用者的權限,給beanxyz單獨指定rw的權限
再試試看,beanxyz就可以修改檔案aa了
如果用ls檢視屬性,可以發現多了個加号+,表示擁有acl的權限
-x可以删除指定的acl權限,也可以用-b删除所有的acl權限
再看個例子,先給beanxyz設定成rwx
然後對之前所有的已經設定過acl的使用者權限,改成隻讀。如果不輸入使用者名或者組名,那就代表所有
第二個m代表mask
後面多了個#effective:r--表示盡管beanxyz目前的權限是rwx,但是有效權限是r--
測試一下,果然沒有寫權限了
随便更改一下,mask就無效了
修改組的方式也類似
修改other也一樣
我們還可以設定預設值,比如我設定test目錄下所有新建立的檔案或者目錄都具有以下權限
測試一下 成功
通過-x d 删除預設acl權限
之前建立的子目錄預設權限不變,但是新建立的就沒有這個預設權限了
如果想複制acl權限,可以通過管道和set-file的方式實作