2008年10月29日 星期三

ACL簡易設定筆記

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
setfacl -M ACL_setting filefile
#移除所有ACL設定,回覆到傳統權限:
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功能相同,差別在於大寫參數是讀取檔案。

沒有留言: