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

Reb*_*ifa 13 permissions command-line find groups

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

Eli*_*gan 17

您可以使用:

find . \! -perm /070
Run Code Online (Sandbox Code Playgroud)

或者:

find . \! -perm /g+rwx
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为:

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

    (如果你使用-代替/,这将考验,如果一切都出席了。如果没有前缀字符,它会测试准确规定的权限,即,所有的人,并没有其他人在场。)

  • 这就是你要找的东西相反-没有是相反的任何-而不是运营商\!否定它后面的测试结果。

    (操作符是真的!,你可能可以这样写,但通常写它是\!为了确保一个人的 shell 将它传递给find而不是特殊对待它。)

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

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

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


Joh*_*024 7

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

find . ! -perm /g+rwx
Run Code Online (Sandbox Code Playgroud)