存取控制清單
ACL 通常是由一系列稱為「存取控制項目」(ACE) 的項目所組成。每個 ACE 都會定義使用者對物件的存取權。
當使用者嘗試存取時,作業系統會使用與物件關聯的 ACL,來查看使用者是否具有存取權。這些 ACL 以及相關的存取檢查即構成 AIX® 支援的「任意存取控制」(DAC) 機制核心。
- 檔案與目錄
- 具名管線
- IPC 物件,如訊息佇列、共用記憶體區段及信號
第一次存取物件時,會在系統呼叫層次檢查這些物件的所有存取權。因為存取 System V 跨處理程序通訊 (SVIPC) 物件並沒有區域限制,所以每一次存取都會加以檢查。針對具有檔案系統名稱的物件,須能解析實際物件的名稱。名稱的解析會是相對地 (到處理程序的工作目錄),或是絕對地 (到處理程序的根目錄)。所有的名稱解析,皆始於搜尋這些目錄的其中一個。
任意存取控制機制可以有效控制對資訊資源的存取,並另外對資訊的機密性與完整性提供保護。使用者控制的存取控制機制的效能,會隨使用者的製作而定。所有使用者都必須瞭解如何授予和拒絕存取權,以及其設定方式。
例如,與檔案系統物件 (檔案或目錄) 關聯的 ACL,可以針對不同使用者強制執行其物件存取權。ACL 也可以針對不同使用者強制執行不同層次的存取權,如讀取或寫入。
一般來說,每個物件都有一個已定義的擁有者,有時還會與主群組建立關聯。特定物件的擁有者可控制其任意存取屬性。擁有者的屬性會設定為建立處理程序的有效使用者 ID。
- 擁有者
- 針對「System V 跨處理程序通訊 (SVIPC)」物件,建立者或擁有者可變更物件的所有權。SVIPC 物件有相關的建立者,具有擁有者的所有權利 (包括存取授權)。即使具有 root 權限,也不能變更建立者。
SVIPC 物件已起始設定為建立處理程序的有效群組 ID。若為檔案系統物件,直接存取控制屬性已起始設定為建立處理程序的有效群組 ID 或上層目錄的群組 ID,這將取決於上層目錄的群組繼承旗標。
- 群組
- 物件的擁有者可以變更群組。新群組必須是建立處理程序的有效群組 ID 或上層目錄的群組 ID (如上所述,SVIPC 物件與無法變更的建立群組相關聯,而且共用物件群組的存取授權)。
- 模式
- chmod 指令 (八進位表示法的數值模式) 可以設定基本許可權及屬性。指令呼叫的 chmod 子常式會停用延伸許可權。如果您對具有 ACL 的檔案使用 chmod 指令的數值模式,將會停用延伸許可權。chmod 指令的符號模式會停用 NSF4 ACL 類型的延伸 ACL, 但不會停用 AIXC 類型 ACL 延伸許可權。如需數值與符號模式的詳細資訊,請參閱 chmod。
作業系統中的許多物件 (如 Socket 及檔案系統物件) 都跟用於不同主體的 ACL 有關聯。這些物件類型的 ACL 詳細資訊可能不盡相同。
AIX 通常支援控制檔案系統物件存取的模式位元。它還支援使用模式位元的獨特 ACL 格式。這個 ACL 由基本模式位元組成,而且可以定義多個 ACE 項目;每個 ACE 項目皆以模式位元定義使用者或群組的存取權。將持續支援這種典型類型的 ACL 行為,且命名為 AIXC ACL 類型。
請注意,是否支援檔案系統物件的 ACL,取決於基礎實體檔案系統 (PFS)。PFS 必須瞭解 ACL 資料,而且能夠儲存、擷取及強制執行不同使用者的存取權。雖然有的實體檔案系統支援多種類型的 ACL,但有些實體檔案系統可能根本不支援任何 ACL (而只支援基本模式位元)。AIX 的檔案系統幾乎沒有加強多種 ACL 類型的支援。JFS2 及 GPFS 也將能夠支援 NFS 第 4 版通訊協定型 ACL 類型。這個 ACL 在 AIX 上命名為 NFS4 ACL 類型。這個 ACL 類型符合 NFS 通訊協定第 4 版規格中的大部分 ACL 定義。相較於 AIXC ACL 類型,這個類型還支援更精細的存取控制,並提供繼承的功能。