如何查找具有特定 ACL 的文件/目录

如何查找具有特定 ACL 的文件/目录

如何做类似的事情

find . -acl u:jim:rx
find . -acl u:*:r
find . -noacl u:jim:r

ETC。

我知道 find 命令不支持此功能,但是您知道了。是否有任何脚本,甚至适用于某些特定场景?

注1:我对 debian 特别感兴趣,但它适用于任何 *nix 操作系统。

笔记2:这个问题侧重于一个实际案例,但实际上更笼统 - 有哪些好的工具可以查找与 ACL 相关的文件。

答案1

您可以使用带有递归选项的getfacl工具-R-s跳过仅具有基本 ACL 的文件并将输出通过管道传输到grep.

例如,在/dev目录下运行以下命令为我提供:

$ getfacl -Rs . | awk -v RS= -v ORS='\n\n' '/\nuser:jimmij:rw-\n/'

# file: sg1
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

# file: sr0
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

(...)

要仅打印文件名:

getfacl -Rs . | awk -v RS= '/\nuser:jimmij:rw-\n/ {sub(/\n.*/, ""); sub(/^[^:]*: /, ""); print}'

相关内容