ACL為Access Control List的縮寫。acl用在很多地方,其實就是額外的存取控制,許多網路設備也都有自己的acl policy。
ACL是user space的層面,想要開啟他必須從filesystem下手:
mount -o remount,acl接著必須要安裝acl這個套件:
[ -e $(which setfacl) ] || aptitude install acl也就是你的系統需要安裝acl utility以及filesystem支援acl,你才可以正式使用以下功能。
01. 查看acl
ls -l filefile-rw-rwxr--+ 1 maxsolar maxsolar 0 2008-08-25 00:13 filefile 有+表示有extended acl.
02. 查看檔案的ACL設定:
getfacl filefile
# file: filefile2 # owner: maxsolar # group: maxsolar user::rw- ##owner:普通user權限 user:geeko:rw- ##named user:acl新增給geeko的user權限,可以多個entry group::r-- ##group:普通group權限 group:geeko:rw- ##named group:acl新增給geeko的group權限,可以多個entry mask::rwx ##mask是named user/group最高能給予的權限 other::r-- ##other:普通other權限
03. 設定檔案的ACL
## 設定geeko只能rw filefile這個檔案
setfacl -m u:geeko:rw filefile## 設定的entries可以多筆
setfacl -m u:geego:rw,g:maxubuntu:rw filefile## 設定最高權限mask:
setfacl -m m:rwx filefile## 移除一筆acl entry: 權限不用寫
setfacl -x u:geego filefile## 複製acl狀態設定:
getfacl filefile > ACL_setting#移除所有ACL設定,回覆到傳統權限:
setfacl -M ACL_setting filefile
setfacl -b filefile
04. 設定資料夾的ACL(default acl)
設定了default acl,其下的目錄跟檔案都會繼承defaults acl權限;
default acl跟access acl的關係是獨立的。
子目錄會繼承上層目錄的access acl以及default acl;檔案則是把default acl轉換成自己的access acl。
setfacl -d -m u:geeko:rw,g:geego:rx dir_filefile# 注意-d -m的位置不能互換
05. 備註
-d/-D與-m/-M功能相同,差別在於大寫參數是讀取檔案。
沒有留言:
張貼留言