关于 OpenBSD 和 NetBSD

关于 OpenBSD 和 NetBSD

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

-rw-r-----+

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

答案1

Tom Hale 的回答中的名称getfaclsetfacl是半传统的,源自原始 TRUSIX 名称getaclsetacl这些实用程序。然而,在一些操作系统上,人们只需使用常用的工具lschmod这些工具已被扩展来处理 ACL;并且一个操作系统有其自己不同的命令集。

POSIX 样式 ACL 的原始 TRUSIX 方案在访问控制列表条目中具有三个权限标志。后来的 NFS4 样式方案以更细粒度的方式将权限划分为 11 到 17 个权限标志。

关于 OpenBSD 和 NetBSD

这种情况不会出现。 OpenBSD 和 NetBSD 都缺乏任何 ACL 机制。

NetBSD 在 FreeBSD 兼容层中实现系统调用,但它们仅返回错误。 OpenBSD 根本就没有 ACL。

在基于 Linux 的操作系统上

使用getfaclTom Hale 的答案,或者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按照 Tom Hale 的回答使用。设置 ACL 是通过 完成的setfacl

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

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

  • 罗伯特·N·M·沃森 (2009-09-14)。getfaclFreeBSD 通用命令手册。免费的BSD。

在 MacOS 上

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

MacOS 仅支持 NFS4 样式的访问控制,ACL 条目分为 17 个单独的权限标志。

Apple 将 ACL 功能纳入现有命令中。使用-e选项ls查看 ACL。
使用-a//和相关选项来+a设置它们。=achmod

  • lsBSD通用命令手册。 2002年5月19日。苹果公司。

在 AIX 上

AIX 上没有getfacland命令。 setfaclIBM 使用自己的命令名称。

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

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

关于 Illumos 和 Solaris

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

Illumos 和 Solaris 支持 POSIX 样式和 NFS4 样式 ACL。

Sun 将 ACL 功能纳入现有命令中。使用-v-V选项ls查看 ACL。在命令中使用A符号模式的前缀chmod来设置它们。

  • ls用户命令。 2014年11月24日。伊鲁莫斯项目。
  • chmod用户命令。 2014年11月24日。伊鲁莫斯项目。
  • lsOracle Solaris 11 信息库。 2011.甲骨文。

关于 Cygwin

getfacl按照 Tom Hale 的回答使用。设置 ACL 是通过 完成的setfacl

Windows NT 本身有一个 ACL 方案,大致类似于 NFS4 风格,具有一组drctpoxfew标准和特定的权限标志,尽管有更多的安全主体和通用权利将 POSIX 风格的三个标志集映射到其标准和特定权限系统的机制。

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

  • getfacl实用工具。天鹅座。

答案2

使用getfacl

getfacl //var/log/journal/ebaaabbb8e1745b38c4ef233edcdb4cd/[email protected]~
getfacl: Removing leading '/' from absolute path names
# file: var/log/journal/ebaaabbb8e1745b38c4ef233edcdb4cd/[email protected]~
# owner: root
# group: systemd-journal
user::rw-
user:ravi:r--
group::r-x                      #effective:r--
group:adm:r-x                   #effective:r--
group:wheel:r-x                 #effective:r--
mask::r--
other::---

参考:要了解有关 ACL 的更多信息(例如更改它们),请参阅Arch Linux ACL 维基页面

相关内容