Sou*_*orn 1 setuid permissions find
我想找到所有 suid 二进制文件的列表。我使用命令
find / -perm 4000
Run Code Online (Sandbox Code Playgroud)
然而,这并没有给我任何输出。我了解到 SUID 文件可能处于 4xxx 权限模式。但是如果我发出命令
find / -perm -4000 (which all websites tell)
Run Code Online (Sandbox Code Playgroud)
或命令
find / -perm +4000
Run Code Online (Sandbox Code Playgroud)
两者都给我相同的结果。据我所知它应该总是+4000(因为如果它是用户 suid 二进制,那么第一个字节应该是 4,如果组 suid 二进制然后第一个字节应该是 2,如果一个粘滞位打开目录,那么第一个字节应该是是 1)。那-4000怎么也给结果呢?
的使用似乎已被弃用。也许来自的帮助可以帮助解决您的疑问:-perm +modeman find
-perm? 模式文件的权限位完全是模式(八进制或符号)。由于需要精确匹配,如果您想将这种形式用于符号模式,您可能必须指定一个相当复杂的模式字符串。例如,
-perm g=w将仅匹配模式为 0020 的文件(即组写入权限是唯一权限集的文件)。例如,您更有可能希望使用 '/' 或 '–' 形式-perm -g=w,它们匹配具有组写权限的任何文件。有关一些说明性示例,请参阅示例部分。
-perm? -模式为文件设置 了所有权限位模式。符号模式以这种形式被接受,这通常是使用它们的方式。如果使用符号模式
u,则必须指定“ ”、“g” 或“o”。有关一些说明性示例,请参阅示例部分。
-perm? /模式为文件设置了 任何权限位模式。这种形式接受符号模式。如果使用符号模式
u,则必须指定“ ”、“g” 或“o”。有关一些说明性示例,请参阅示例部分。如果mode中没有设置权限位,则此测试匹配任何文件(这里的想法是与 的行为保持一致-perm -000)。
-perm? +模式已弃用的旧方式搜索具有模式设置中任何权限位的文件。 你应该改用。尝试在符号模式中使用 ' ' 语法会产生令人惊讶的结果。例如,' ' 是有效的符号模式(相当于 +u,+x,即 0111),因此不会被评估为,而是作为精确模式说明符,因此它匹配具有精确权限 0111 的文件而不是具有任何执行位设置。 如果您发现这一段令人困惑,那么您并不孤单——只需使用. 这种形式的测试已被弃用,因为 POSIX 规范要求解释前导 '
-perm /mode++u+x-perm +mode-perm mode-perm /mode-perm+' 作为符号模式的一部分,因此我们转而使用 '/'。
参考: