acl
文件和目錄為它們的所有者、組群、和所有其他系統用戶規定了許可權限。但是,這些權限設置也有其局限性。例如:不同的用戶無法被配置使用不同的權限。訪問存取控制列表(Aclearcase/" target="_blank" >ccess Control Lists,ACL)就由此而生。
紅帽企業 Linux 3 內核為 ext3 文件系統和 NFS 導出的文件系統提供 ACL 支持。ACL 在通過 Samba 存取的 ext3 文件系統上也被識別。
除了在內核中的支持外,你還需要 acl 軟件包才能實現 ACL。其中包含用來添加、修改、刪除、和檢索 ACL 信息的工具。
cp 和 mv 命令會復制或轉移任何與文件和目錄相關的 ACL。
在文件或目錄中使用 ACL 之前,它們所在的分區必須使用 ACL 支持來掛載。如果它是本地的 ext3 文件系統,它可以使用以下命令來掛載:
mount -t ext3 -o acl <device-name> <partition>
例如:
mount -t ext3 -o acl /dev/hdb3 /work
如果分區被列在 /etc/fstab 文件中,該分區的項目就能夠包括 acl 選項,如:
LABEL=/work /work ext3 acl 1 2
如果某個 ext3 文件系統是通過 Samba 來存取的,而且其中還啟用了 ACL,ACL 就會被識別,這是因為 Samba 已經使用 --with-acl-support 選項被編譯了。在存取或掛載 Samba 共享的時候不需要任何特殊標志。
按照默認設置,如果被 NFS 服務器導出的文件系統支持 ACL,並且 NFS 客戶能夠讀取 ACL,ACL 就會被客戶系統利用。
在配置服務器的時候,若要禁用 NFS 共享上的 ACL,則在 /etc/exports 文件中包括 no_acl 選項。要在客戶上掛載 NFS 共享的時候禁用其中的 ACL,通過命令行或 /etc/fstab 文件使用 no_acl 選項來掛載它。
ACL 有兩種:存取 ACL(access ACLs)和默認 ACL(default ACLs)。存取 ACL 是對指定文件或目錄的存取控制列表。默認 ACL 只能和目錄相關。如果目錄中的文件沒有存取 ACL,它就會使用該目錄的默認 ACL。默認 ACL 是可選的。
ACL 可以按以下條件配置:
每用戶
每組群
通過有效權限屏蔽
為不屬於文件用戶組群的用戶配置
setfacl 工具為文件和目錄設置 ACL。使用 -m 來添加或修改文件或目錄的 ACL:
setfacl -m <rules> <files>
規則(<rules>)必須使用以下格式指定。同一條命令中可以指定多項規則,只要它們是用逗號分開即可。
為用戶設置存取 ACL。用戶名或 UID 必須被指定。用戶可以是系統上的任何合法用戶。
為組群設置存取 ACL。組群名稱或 GID 必須被指定。組群可以是系統上的任何合法組群。
設置有效權限屏蔽。該屏蔽是組群所有者和所有用戶和組群項目的權限的合集。
為文件的組群用戶之外的用戶設置存取 ACL。