> 文件与目录管理 > getfacl

getfacl: 查看文件访问控制列表 (ACL)

getfacl 命令用于查看文件和目录上设置的访问控制列表 (ACL: Access Control List)。它允许比传统的 Unix 权限 (rwx) 更精细的权限设置,在管理特定用户或组的独立访问权限时非常有用。

概述

ACL 是一项功能,允许根据用户、组或其他标识符对文件系统对象进行精细的权限控制。getfacl 读取这些 ACL 设置并显示当前应用的权限规则。

主要特点

  • 查看超越传统 rwx 权限的精细权限设置
  • 查看特定用户或组的独立权限
  • 提供查看目录默认 (default) ACL 的功能
  • 递归查看子文件和目录的 ACL

主要选项

getfacl 命令在查询 ACL 信息时,可以通过各种选项来控制输出格式或仅查询特定类型的 ACL。

查询与输出

生成的命令:

请尝试组合命令。

描述:

`getfacl` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

展示使用 getfacl 命令查看文件和目录 ACL 的各种方法。

查看特定文件的 ACL

getfacl sample.txt

查看 sample.txt 文件的当前 ACL 设置。

查看目录的默认 ACL

getfacl -d my_directory

查看 my_directory 目录上设置的默认 ACL。此 ACL 将应用于在该目录中新创建的文件/目录。

递归查看目录及其子项的 ACL

getfacl -R data_dir

递归查看 data_dir 目录及其内部所有文件和子目录的 ACL。

仅输出 ACL 信息,不带头部

getfacl --omit-header report.log

简洁地输出 report.log 文件的 ACL 信息,不带头部。在脚本中解析时非常有用。

安装

getfacl 命令通常作为 'acl' 包的一部分提供。大多数 Linux 发行版都默认安装了它,但在最小安装环境中可能需要手动安装。

Debian/Ubuntu

sudo apt update && sudo apt install acl

使用 apt 包管理器安装 'acl' 包。

RHEL/CentOS/Fedora

sudo dnf install acl
# 或
sudo yum install acl

使用 yum 或 dnf 包管理器安装 'acl' 包。

提示与注意事项

有效使用和管理 ACL 的提示和注意事项。

检查 ACL 是否已应用

如果文件或目录已应用 ACL,则在执行 'ls -l' 命令时,权限字符串末尾会附加 '+' 符号。(例如:-rw-rw-r--+)

  • ls -l 输出: 检查权限字符串末尾的 '+'

ACL 与传统权限的关系

ACL 与传统的 rwx 权限协同工作。一旦设置了 ACL,传统权限可以充当 'mask',限制 ACL 中设置的最大有效权限。'mask' 条目可以在 getfacl 的输出中找到。

与 setfacl 的联动

要设置或修改 ACL,需要使用 'setfacl' 命令。通常的工作流程是使用 getfacl 查看当前设置,然后使用 setfacl 进行更改。

文件系统支持

并非所有文件系统都支持 ACL。ext2/3/4、XFS 等大多数现代 Linux 文件系统都支持 ACL,但文件系统可能需要通过挂载选项启用 ACL(例如:mount -o acl)。


相同类别命令