Siva Asked: 2018-01-17 22:29:44 +0800 CST2018-01-17 22:29:44 +0800 CST 2018-01-17 22:29:44 +0800 CST 我们是否有 ACL 的日志 ..? 772 我想知道是否有任何方法可以列出所有文件的特定用户的 ACL。例如,对于 cronjob,我们在 /var/spool/cron/ 中有详细信息。ACL 是否以同样的方式将信息存储在任何地方? acl 2 个回答 Voted telcoM 2018-01-18T01:02:32+08:002018-01-18T01:02:32+08:00 ACL(访问控制列表)不是一个进程。它只是任何 inode 上元数据的一部分,就像经典的 Unix 文件权限一样。换句话说,每个 ACL 都与它所影响的文件或目录一起存储。 当您谈到特定用户的 ACL时,您是指该用户创建或修改的ACL吗?ACL 通常作为文件/目录的扩展属性处理,因此您可以使用审计子系统记录任何setxattr()/lsetxattr()/fsetxattr()系统调用来记录它们。您可能还会获得其他类型的扩展属性,因此您可能需要对日志进行一些后处理。 或者您是指引用特定用户的 ACL?为此,恐怕您必须做一些事情,例如getfacl -Rs /获取文件系统树上的所有 ACL,然后过滤结果以查找您想要的用户。 Best Answer roaima 2018-01-19T10:53:37+08:002018-01-19T10:53:37+08:00 有没有办法列出所有文件的特定用户的 ACL 一点点 shell 脚本会很直接地回答这个问题。首先,您需要遍历文件系统以查找 ACL。您发现的任何内容都需要检查以查看它们是否引用了您的用户帐户,如果是,则打印出来。(这不是一个非常有效的过程,所以我不建议你经常运行它。) user=johndoe cd / find -print0 | while IFS= read -r -d '' f do a=$(getfacl -s "$f") echo "$a" | grep "^user:${user}:" && echo "$a" done 如果您也对简单的文件所有权感兴趣,请将grep以下行修改为: echo "$a" | grep -E "^user:${user}:|^# owner: ${user}$" && echo "$a"
ACL(访问控制列表)不是一个进程。它只是任何 inode 上元数据的一部分,就像经典的 Unix 文件权限一样。换句话说,每个 ACL 都与它所影响的文件或目录一起存储。
当您谈到特定用户的 ACL时,您是指该用户创建或修改的ACL吗?ACL 通常作为文件/目录的扩展属性处理,因此您可以使用审计子系统记录任何
setxattr()/lsetxattr()/fsetxattr()
系统调用来记录它们。您可能还会获得其他类型的扩展属性,因此您可能需要对日志进行一些后处理。或者您是指引用特定用户的 ACL?为此,恐怕您必须做一些事情,例如
getfacl -Rs /
获取文件系统树上的所有 ACL,然后过滤结果以查找您想要的用户。一点点 shell 脚本会很直接地回答这个问题。首先,您需要遍历文件系统以查找 ACL。您发现的任何内容都需要检查以查看它们是否引用了您的用户帐户,如果是,则打印出来。(这不是一个非常有效的过程,所以我不建议你经常运行它。)
如果您也对简单的文件所有权感兴趣,请将
grep
以下行修改为: