在 RockyLinux 系统中,除了传统的用户、组和其他(u/g/o)权限模型外,还支持更灵活的访问控制列表(ACL)。ACL 允许你为特定用户或组设置精细的文件或目录权限。而
getfacl命令就是用来查看这些 ACL 权限的强大工具。
什么是 ACL?
ACL(Access Control List,访问控制列表)是一种扩展的权限机制,它允许你为多个用户或多个组分别设置读、写、执行权限,而不受传统 Linux 三类权限(所有者、所属组、其他)的限制。
例如:你可以让一个不属于文件所属组的用户拥有对该文件的读写权限,这在共享协作环境中非常有用。
getfacl 命令的作用
getfacl是 “get file access control list” 的缩写,用于显示文件或目录的 ACL 权限信息。即使某个文件没有设置额外的 ACL,
getfacl也会显示其基本权限,并标注是否启用了 ACL。
安装 acl 工具包(如未安装)
大多数 RockyLinux 系统默认已安装
acl工具包,但若未安装,可通过以下命令安装:
sudo dnf install -y acl
基本用法:查看文件的 ACL
假设你有一个名为
report.txt的文件,想查看它的 ACL 权限,只需运行:
getfacl report.txt
输出可能如下:
# file: report.txt# owner: alice# group: staffuser::rw-group::r--other::r--
这里虽然没有额外的 ACL 条目,但可以看到基本权限。如果设置了额外 ACL,会多出类似
user:bob:rw-的行。
查看目录的 ACL(含默认 ACL)
对于目录,
getfacl还可以显示“默认 ACL”(default ACL),它决定了新创建的文件或子目录继承的权限。
getfacl /shared
输出示例:
# file: /shared# owner: root# group: developersuser::rwxgroup::r-xother::---default:user::rwxdefault:group::r-xdefault:group:tester:rwxdefault:mask::rwxdefault:other::---
注意以
default:开头的行,它们定义了新文件/子目录的默认权限。
关键字段解释
user:: 文件所有者的权限 user:用户名: 为特定用户设置的 ACL 权限 group:: 文件所属组的权限 group:组名: 为特定组设置的 ACL 权限 mask:: ACL 掩码,限制所有命名用户/组的最大权限 other:: 其他用户的权限 default: 仅用于目录,定义新创建文件的默认 ACL常见问题与技巧
Q:为什么有些文件没有 ACL 信息?
A:只有在文件系统挂载时启用
acl选项(通常默认已启用),并且实际设置了 ACL 后,才会显示额外条目。
Q:如何判断一个文件是否有 ACL?
A:使用
ls -l查看,如果权限字段末尾有
+号(如
-rw-rw-r--+),说明该文件有 ACL。
总结
通过
getfacl命令,你可以轻松查看 RockyLinux 系统中文件和目录的 ACL 权限,这对于管理复杂的多用户协作环境至关重要。掌握 RockyLinux、getfacl命令、ACL权限 和 Linux文件权限 这些核心概念,将帮助你更安全、高效地控制系统访问。
建议在测试环境中多练习
setfacl和
getfacl的配合使用,加深理解!
