如何查找没有组权限的文件?

如何查找没有组权限的文件?

我只是想知道如何使用终端在文件夹中找到根本没有组用户权限(无读/写/执行)的文件。

答案1

您可以使用:

find . \! -perm /070

或者:

find . \! -perm /g+rwx

这是因为:

  • 当测试的操作数-perm以 开头时/,它会导致-perm测试是否任何指定的权限均存在。

    (如果你使用-代替/,它会测试全部存在。如果没有前缀字符,它将测试确切地指定的权限,即所有权限并且没有其他人展示。)

  • 这与你所寻找的正好相反——没有任何是相反的任何-- 以及不是运算符\!否定其后面跟的测试的结果。

    (操作符实际上是!,您可能也可以这样写,但通常写为 以\!确保某人的 shell 将其传递给find而不是特殊处理它。)

至于后面具体字符串的含义/,请参见文件权限这篇维基百科文章和/或man chmod。总之,如应用于上面显示的命令:

  • 070是一个八进制权限字符串,分别指定用户(即所有者)、组和其他(即其他所有人)的权限。 7 表示读取 (4)、写入 (2) 和执行 (1) 权限(即111具有、和1中的位)。100010001
  • g+rwx是一个符号权限字符串,指定组 ( g) 具有读 ( r)、写 ( w) 和执行 ( x) 权限。

无论使用哪种符号,请记住,您表达的与您最终想要的相反,因为测试的结果被否定了!

答案2

要查找当前目录或其子目录中未设置任何组读取、写入或执行位的文件,请运行:

find . ! -perm /g+rwx

答案3

使用您私人终端上的简单命令运行:

sudo df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -nogroup -ls

相关内容