在 ls -l 输出中查看带有“+”的文件的扩展 ACL

Tom*_*ale 6 ls acl permissions

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

-rw-r-----+
Run Code Online (Sandbox Code Playgroud)

如何找到由+?表示的扩展访问控制列表 (ACL) 权限?

Jde*_*eBP 13

Tom Hale 的回答中的名称getfacl和名称setfacl是半传统的,源自原始 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,而必须使用setrichaclgetrichacl用于 NFS4 样式的 ACL。这与 FreeBSD 不同。

  • 罗伯兰德利。“ chmod”。 玩具箱手册

在 FreeBSD 上

使用getfacl在汤姆硬朗的答案。设置 ACL 是通过setfacl.

FreeBSD 有两种形式的 ACL。一个具有 POSIX 风格的条目,如原始 TRUSIX 模型;另一个具有 NFS4 样式的条目,具有 14 个权限标志。

与在 Solaris、Illumos 和 MacOS 上不同,在 FreeBSDchmod上不处理 ACL,ls仅指示它们的整体存在与否。但是,与基于 Linux 的操作系统不同,每个工具都有一个用于获取和设置 ACL 的工具。FreeBSD 上的getfaclsetfacl命令处理两种形式的 ACL。对于 NFS4 样式,它们有多个超出 TRUSIX 的扩展,例如以长格式打印 NFS4 样式访问控制的-v选项getfacl,而不是作为单字母代码的列表。

  • 罗伯特 NM 沃森 (2009-09-14)。getfacl. FreeBSD 通用命令手册。FreeBSD。

在 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上没有getfaclandsetfacl命令。IBM 使用自己的命令名称。

AIX 支持 POSIX 样式(IBM 将其命名为“AIXC”)和 NFS4 样式 ACL。

使用该aclget命令获取 ACL。使用aclset命令来设置它们。使用acledit命令通过文本编辑器编辑它们。使用该aclconvert命令将 POSIX 样式转换为 NFS4 样式。

在 Illumos 和 Solaris 上

Illumos 和 Solaris 上没有getfaclandsetfacl命令。Solaris 和 Illumos 就像 MacOS。

Illumos 和 Solaris 支持 POSIX 风格和 NFS4 风格的 ACL。

Sun 将 ACL 功能整合到现有命令中。使用-v-V选项ls查看 ACL。Achmod命令中使用符号模式的前缀来设置它们。

  • ls. 用户命令。2014-11-24。伊卢莫斯项目。
  • chmod. 用户命令。2014-11-24。伊卢莫斯项目。
  • ls. Oracle Solaris 11 信息库。2011. 甲骨文。

在 Cygwin 上

使用getfacl在汤姆硬朗的答案。设置 ACL 是通过setfacl.

Windows NT的本身具有的ACL方案,该方案大致NFS4风格的一组drctpoxfew标准和专用许可标志,尽管有较大的一组安全主体和通用权利的机制,一个POSIX式组三个标志映射到其标准和特定的权限权限系统。

Cygwin 将其呈现为类 Solaris ACL API、Microsoft 第二个用于 Windows NT 的 POSIX 子系统的 ID 映射机制(née Interix)以及一组仅识别 POSIX 样式权限的类 Linux 命令行工具的古怪混合物.

  • getfacl. Cygwin 实用程序。天鹅座。