如何查找特定用户可写的所有文件和目录?

Pis*_*tos 13 linux find users

在 Linux 下,如何找到特定用户可写(或实际上不可写)的所有文件和目录?

编辑:澄清一下,我的意思是在特定的子目录下,而不是系统范围内。是的,这意味着允许该用户编写的用户、组和世界可写性的所有排列和组合。我知道这个问题在语义上意味着什么,我希望执行一个或几个行来获取这些文件的列表。

Oph*_*ian 21

如果您安装了 findutils 4.3.0 或更高版本,请使用“find”命令:

对于当前目录下当前用户可写的所有文件:

find . -writable
Run Code Online (Sandbox Code Playgroud)

对于当前目录下当前用户不可写的所有文件:

find . ! -writable
Run Code Online (Sandbox Code Playgroud)

根据手册页:

该测试使用了 access(2) 系统调用,因此可能会被执行 UID 映射(或根压缩)的 NFS 服务器所欺骗,因为许多系统在客户端内核中实现了 access(2),因此无法使用服务器上保存的 UID 映射信息。

  • 只是想我会提到进一步的启发:我实际上必须与没有登录外壳( /sbin/nologin )的用户一起执行此操作。为此,我使用了 sudo,如下所示: sudo -u nobody find 。!- 可写 (4认同)
  • 这不能回答问题,因此不应成为公认的答案。问题是关于“特定用户”,而不是关于“当前用户”。 (3认同)