如何做类似的事情
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}'