开篇词
尽管 chmod
命令已经足够强力,但它无法对权限进行更精细的分配,所以 Linux 提供了一些灵活的命令以为特定用户或组指定权限。从 Linux 内核 2.6 开始,我们可以给用户或组分配更细粒度的权限。
开始之前
在我们开始之前,我们要确保我们所使用的系统是基于 2.6 或以上的内核:
uname -r
获取文件 ACL
我们可以使用 getfacl
命令来获取一个文件的访问控制列表。
这里是 getfacl
命令的一些选项:
选项 | 用途 |
---|---|
-a 或 --access |
输出所有的访问控制列表。 |
-d 或 --default |
输出默认的访问控制列表。 |
-c 或 --omit-header |
输出访问控制列表但不包含备注头信息。 |
-e 或 --all-effective |
输出所有有效权限的备注。 |
-E 或 --no-effective |
输出所有无效权限的备注。 |
-s 或 --skip-base |
忽略所有只包含基本 ACL 条目的文件或目录 ACL。 |
-R 或 --recursive |
递归输出所有文件及目录的 ACL。 |
-L 或 --logical |
递归输出所有文件、目录以及软链接 ACL,必须与 -R 相结合。 |
-P 或 --physical |
递归输出所有文件和目录的 ACL,必须与 -R 相结合。 |
-t 或 --tabular |
以表格格式输出文件或目录 ACL。 |
-p 或 --absolute-names |
保留一个路径的起始斜线 / 。 |
-n 或 --numeric |
输出所有者及组编号而非名称。 |
默认情况下,getfacl
命令输出访问控制列表和默认访问控制列表。
touch acl_file
getfacl acl_file
文件 ACL
使用 -a
或 --access
参数,我们可以查看文件的访问控制列表:
getfacl -a acl_file # 等价于 getfacl --access acl_file
文件默认 ACL
使用 -d
或 --default
参数,我们可以查看文件的默认访问控制列表:
getfacl -d acl_file # 等价于 getfacl --default acl_file