列表中的文件ls -l
具有以下权限:
-rw-r-----+
如何找到由 表示的扩展访问控制列表 (ACL) 权限+
?
答案1
Tom Hale 的回答中的名称getfacl
和setfacl
是半传统的,源自原始 TRUSIX 名称getacl
和setacl
这些实用程序。然而,在一些操作系统上,人们只需使用常用的工具ls
,chmod
这些工具已被扩展来处理 ACL;并且一个操作系统有其自己不同的命令集。
POSIX 样式 ACL 的原始 TRUSIX 方案在访问控制列表条目中具有三个权限标志。后来的 NFS4 样式方案以更细粒度的方式将权限划分为 11 到 17 个权限标志。
- https://superuser.com/a/384500/38062
- 克雷格·鲁宾(1989-08-18)。 为 Unix 系统选择访问控制列表功能的基本原理。 NCSC-TG-020-A。黛安出版。国际标准书号 9780788105548。
- IEEE 计算机协会便携式应用标准委员会(1997 年 10 月)。 信息技术标准草案 — 便携式操作系统接口 (POSIX) — 第 1 部分:系统应用程序接口 (API) — 修正案 #:保护、审计和控制接口 [C 语言] IEEE 1003.1e。草案 17。
- S. Shepler、M. Eisler、D. Noveck(2010 年 1 月)。 “ACE访问面具”。网络文件系统 (NFS) 版本 4 次要版本 1 协议。 RFC 5661。IETF。
关于 OpenBSD 和 NetBSD
这种情况不会出现。 OpenBSD 和 NetBSD 都缺乏任何 ACL 机制。
NetBSD 在 FreeBSD 兼容层中实现系统调用,但它们仅返回错误。 OpenBSD 根本就没有 ACL。
在基于 Linux 的操作系统上
使用getfacl
Tom 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。
setfacl
并getfacl
处理 TRUSIX ACL,而必须使用setrichacl
和getrichacl
来处理 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)。
getfacl
。 FreeBSD 通用命令手册。免费的BSD。
在 MacOS 上
MacOS 上没有getfacl
and命令。 setfacl
MacOS 就像 Solaris 和 Illumos。
MacOS 仅支持 NFS4 样式的访问控制,ACL 条目分为 17 个单独的权限标志。
Apple 将 ACL 功能纳入现有命令中。使用-e
选项ls
查看 ACL。
使用-a
//和相关选项来+a
设置它们。=a
chmod
ls
。 BSD通用命令手册。 2002年5月19日。苹果公司。
在 AIX 上
AIX 上没有getfacl
and命令。 setfacl
IBM 使用自己的命令名称。
AIX 支持 POSIX 样式(IBM 将其命名为“AIXC”)和 NFS4 样式 ACL。
使用该aclget
命令获取 ACL。使用aclset
命令来设置它们。使用acledit
命令通过文本编辑器编辑它们。使用该aclconvert
命令将 POSIX 样式转换为 NFS4 样式。
- ”访问控制列表管理”。 IBM AIX V7.1 文档。 IBM。
关于 Illumos 和 Solaris
Illumos 和 Solaris 上没有getfacl
和命令。 setfacl
Solaris 和 Illumos 就像 MacOS。
Illumos 和 Solaris 支持 POSIX 样式和 NFS4 样式 ACL。
Sun 将 ACL 功能纳入现有命令中。使用-v
或-V
选项ls
查看 ACL。在命令中使用A
符号模式的前缀chmod
来设置它们。
关于 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 维基页面。