getfacl 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

getfacl 命令安装:


-bash: getfacl: getfacland not found

#Debian
apt-get install acl

#Ubuntu
apt-get install acl

#Alpine
apk add acl

#Arch Linux
pacman -S acl

#Kali Linux
apt-get install acl

#CentOS
yum install acl

#Fedora
dnf install acl

#OS X
brew install acl

#Raspbian
apt-get install acl

#Docker
docker run cmd.cat/getfacl getfacl

getfacl 命令补充说明:


对于每个文件,getfacl 都会显示文件名,所有者,组和访问控制列表(ACL)。 如果目录具有默认 ACL,则 getfacl 还将显示默认 ACL。 非目录不能具有默认 ACL。

如果在不支持 ACL 的文件系统上使用 getfacl,则 getfacl 将显示由传统文件模式权限位定义的访问权限。

getfacl 的输出格式如下

1:  # file: somedir/
2:  # owner: lisa
3:  # group: staff
4:  user::rwx
5:  user:joe:rwx               #effective:r-x
6:  group::rwx                 #effective:r-x
7:  group:cool:r-x
8:  mask:r-x
9:  other:r-x
10:  default:user::rwx
11:  default:user:joe:rwx       #effective:r-x
12:  default:group::r-x
13:  default:mask:r-x
14:  default:other:---

第 4、6 和 9 行对应于文件模式权限位的用户,组和其他字段。这三个称为基本 ACL 条目。第 5 行和第 7 行分别命名为用户和组名。第 8 行是有效的权限掩码。此项限制了授予所有组和命名用户的有效权限。 (文件所有者和其他权限不受有效权限掩码的影响;所有其他条目均受此影响。)第 10 到 14 行显示与此目录关联的默认 ACL。目录可能具有默认的 ACL。常规文件永远不会具有默认 ACL。

getfacl 的默认行为是显示 ACL 和默认 ACL,并在条目的权限与有效权限不同的行中包含有效权限注释。

如果输出到终端,则有效权限注释将与列 40 对齐。否则,将使用单个制表符将ACL条目和有效权限注释分隔开。

多个文件的 ACL 列表由空行分隔。 getfacl 的输出也可以用作 setfacl 的输入。

getfacl 权限说明:


对文件具有搜索访问权限的进程(即具有对文件包含目录的读访问权限的进程)也被授予对文件 ACL 的读访问权限。 这类似于访问文件模式所需的权限。

getfacl 命令语法:


getfacl [-dRLPvh] file ...
getfacl [-dRLPvh] -

getfacl 命令选项:


--access  显示文件访问控制列表。
-d, --default 显示默认的访问控制列表。
--omit-header 不要显示注释标题(每个文件输出的前三行)。
--all-effective 打印所有有效的权限注释,即使与ACL条目定义的权限相同。
--no-effective  不要打印有效的权利注释。
--skip-base 跳过仅具有基本ACL条目(所有者,组,其他)的文件。
-R, --recursive 递归列出所有文件和目录的ACL。
-L, --logical “逻辑行走”(遵循符号链接)。 默认行为是遵循符号链接参数,并跳过子目录中遇到的符号链接。
-P, --physical  “物理漫游”(跳过所有符号链接)。 这也会跳过符号链接参数。
--tabular 使用替代的表格输出格式。 ACL和默认ACL并排显示。 由于ACL掩码条目而无效的权限以大写形式显示。 ACL_USER_OBJ和ACL_GROUP_OBJ条目的条目标签名称也以大写字母显示,这有助于发现这些条目。
--absolute-names  请勿去除前导斜杠字符('/')。 默认行为是删除前导斜杠字符。
--version 打印getfacl的版本并退出。
--help  打印帮助以解释命令行选项。
--  命令行选项的结尾。 所有其余参数都解释为文件名,即使它们以破折号开头。
- 如果文件名参数是单个破折号,则getfacl从标准输入中读取文件列表。

getfacl 命令参数:


文件:指定要查看 ACL 的文件。

getfacl 环境变量说明:


如果定义了环境变量 POSIXLY_CORRECT,则 getfacl 的默认行为将通过以下方式更改:除非另有说明,否则仅打印 ACL。 仅在给出 -d 选项的情况下才打印默认 ACL。 如果未提供命令行参数,则getfacl的行为就像被调用为“ getfacl-”一样。

getfacl 命令实例


显示文件 report_edu_202005261401.log 的访问控制列表:

$ getfacl report_edu_202005261401.log 

# file: report_edu_202005261401.log
# owner: nginx
# group: nginx
user::rw-
group::r--
other::r--

查看 getfacl 版本:

$ getfacl --version
getfacl 2.2.51

getfacl 命令扩展阅读:




getfacl 命令评论