Permissions

在 ls -l 輸出中查看帶有“+”的文件的擴展 ACL

  • September 15, 2020

列表中的文件ls -l具有以下權限:

-rw-r-----+

如何找到由 ? 表示的擴展訪問控制列表 (ACL) 權限+

Tom Hale 的答案中的名稱getfaclsetfaclas 是半傳統的,並且源自原始 TRUSIX 名稱getaclsetacl這些實用程序。然而,在幾個作業系統上,人們只使用常用的工具lschmod工具,這些工具已擴展為處理 ACL;一個作業系統有自己不同的命令集。

POSIX 樣式 ACL 的原始 TRUSIX 方案在訪問控制列表條目中具有三個權限標誌。後來的 NFS4 樣式方案以更細粒度的方式將權限劃分為 11 到 17 個權限標誌。

在 OpenBSD 和 NetBSD 上

這種情況不會出現。OpenBSD 和 NetBSD 都缺乏任何 ACL 機制。

NetBSD 在 FreeBSD 兼容層中實現系統呼叫,但它們只返回一個錯誤。OpenBSD 根本沒有 ACL。

在基於 Linux 的作業系統上

getfacl在湯姆黑爾的答案中使用,或getrichacl。使用setfacl或設置 ACL setrichacl

Linux(一個核心,記住)有兩種形式的 ACL。它支持 POSIX 樣式 ACL 的原始 TRUSIX 方案和(自 2015 年以來,但由於沒有足夠的維護人員可用於審查 Linux 中的 VFS 層而長期處於“實驗”狀態)NFS4 樣式方案.

在基於 Linux 的作業系統上有多種標準命令的實現,從 toybox 到 BusyBox 再到 GNU coreutils。但在所有情況下chmod都不處理 ACL,ls最多只表明它們的整體存在或不存在。這與 Solaris、Illumos 或 MacOS 不同。

也沒有一種工具可以獲取或設置 ACL。 setfaclgetfacl處理 TRUSIX ACL,而對於 NFS4 樣式的 ACL,必須使用setrichaclgetrichacl。這與 FreeBSD 不同。

  • 羅伯·蘭德利。“ chmod”。 玩具盒說明書

在 FreeBSD 上

getfacl在湯姆黑爾的回答中使用。設置 ACL 使用setfacl.

FreeBSD 有兩種形式的 ACL。一個具有 POSIX 風格的條目,如原始 TRUSIX 模型;另一個具有 NFS4 樣式的條目,具有 14 個權限標誌。

與 Solaris、Illumos 和 MacOS 不同,FreeBSDchmod不處理 ACL,ls只指示它們的整體存在或不存在。但與基於 Linux 的作業系統不同,每個工具都有一個用於獲取和設置 ACL 的工具。FreeBSD 上的getfaclandsetfacl命令處理兩種形式的 ACL。除了 TRUSIX 之外,它們還有幾個 NFS4 樣式的擴展,例如以長格式列印 NFS4 樣式訪問控制的-v選項getfacl,而不是單字母程式碼列表。

  • 羅伯特 NM 沃森 (2009-09-14)。getfacl. FreeBSD 通用命令手冊。自由BSD。

在 MacOS 上

MacOS上沒有getfaclsetfacl命令。MacOS 就像 Solaris 和 Illumos。

MacOS 僅支持 NFS4 樣式的訪問控制,ACL 條目分為 17 個單獨的權限標誌。

Apple 將 ACL 功能整合到現有命令中。使用-e選項ls來查看 ACL。

使用-a//+a=a相關選項chmod來設置它們。

  • ls. BSD 通用命令手冊。2002-05-19。蘋果公司。

在 AIX 上

AIX上沒有getfaclsetfacl命令。IBM 使用自己的命令名稱。

AIX 支持 POSIX 樣式(IBM 將其命名為“AIXC”)和 NFS4 樣式 ACL。

使用該aclget命令獲取 ACL。使用aclset命令來設置它們。使用acledit命令使用文本編輯器編輯它們。使用該aclconvert命令將 POSIX 樣式轉換為 NFS4 樣式。

在 Illumos 和 Solaris 上

Illumos 和 Solaris 上沒有getfaclsetfacl命令。Solaris 和 Illumos 就像 MacOS。

Illumos 和 Solaris 支持 POSIX 樣式和 NFS4 樣式的 ACL。

Sun 將 ACL 功能整合到現有命令中。使用-v-V選項ls查看 ACL。在命令中使用A符號模式的前綴chmod來設置它們。

  • ls. 使用者命令。2014 年 11 月 24 日。伊魯莫斯項目。
  • chmod. 使用者命令。2014 年 11 月 24 日。伊魯莫斯項目。
  • ls. Oracle Solaris 11 資訊庫。2011. 甲骨文。

在 Cygwin 上

getfacl在湯姆黑爾的回答中使用。設置 ACL 使用setfacl.

Windows NT 本身有一個大致是 NFS4 風格的 ACL 方案,帶有一組drctpoxfew標準和特定的權限標誌,儘管有一組更大的安全主體和一個通用權限機制,將 POSIX 風格的三個標誌集映射到其標準和特定權限權限系統。

Cygwin 將其描述為類似 Solaris 的 ACL API、來自 Microsoft 用於 Windows NT 的第二個 POSIX 子系統(née Interix)的 ID 映射機制以及一組僅辨識 POSIX 樣式權限的類似 Linux 的命令行工具的古怪混合物.

  • getfacl. Cygwin 實用程序。天鵝座。

引用自:https://unix.stackexchange.com/questions/347836