摘要
本章節簡略介紹 Linux 檔案系統的 POSIX ACL (存取控制清單) 相關背景和功能。ACL 可以看做是傳統檔案系統物件許可權概念的擴充。使用 ACL,定義許可權比傳統許可權概念更有彈性。
POSIX ACL 這個詞彙表示這是真正的 POSIX (可攜式作業系統介面) 標準。各自的草稿標準 POSIX 1003.1e 和 POSIX 1003.2c 已經因多種因素而撤銷了。然而,在屬於 UNIX 家族中很多系統發現的 ACL,是以這些草稿為基礎,而且本章節敘述的系統 ACL 實行,也是依循這兩個標準。要查閱它們,請到 http://wt.xpilot.org/publications/posix.1e/。
傳統上,會為 Linux 系統的每一個檔案物件,定義三組的許可權。這三組包括讀取 (r)、寫入 (w) 以及執行 (x) 許可權,用於三種使用者類型 (檔案擁有者、群組和其他使用者) 的每一個。此外,也可以設定設定使用者 id、設定群組 id 以及黏貼位元。
這個小小的概念對於大部份實際情況已經足夠了。不過,對於更複雜的案例或進階應用程式,系統管理員以前必須使用一些訣竅才能克服傳統許可權概念的限制。
ACL 可以用於需要擴充傳統檔案許可權概念的狀況。它們允許指定許可權給個別使用者或群組,即使這些許可權並不對應至原始擁有者或所屬群組。存取控制清單是 Linux 核心的特性之一,目前 ReiserFS、Ext2、Ext3、JFS 和 XFS 都能支援。使用 ACL 可以理解複雜的情況,無需在應用程式層次上實行複雜的許可權模型。
以 Linux 伺服器取代 Winodws 伺服器時,ACL 的優點特別明顯。部份連線的工作站還可以在移轉之後,繼續在 Winodws 下執行。Linux 系統提供檔案和列印服務給含 Samba 的 Windows 用戶端使用。假設 Samba 支援存取控制清單,使用者許可權可以同時在 Linux 伺服器和使用圖形使用者介面的 Windows (限 Winodws NT 和更新的版本) 上設定。透過 winbindd,還可以指定許可權給只存取 Windows 領域中而且沒有 Linux 伺服器任何帳戶的使用者。