使用 find -perm 查找 setuid 文件

使用 find -perm 查找 setuid 文件

我想找到所有 suid 二进制文件的列表。我使用命令

find / -perm 4000

然而,这并没有给我任何输出。据我了解,SUID文件可能处于4xxx权限模式。但是如果我发出命令

find / -perm -4000 (which all websites tell)

或命令

find / -perm +4000 

两者都给我相同的结果。据我了解,它应该始终是+4000(因为如果它是用户suid二进制文件,那么第一个字节应该是4,如果组suid二进制文件,那么第一个字节应该是2,如果粘性位打开目录,那么第一个字节应该是是 1)。那为什么-4000也给出结果呢?

答案1

似乎已被弃用。也许以下的帮助可以帮助解决您的疑问:-perm +modeman find

-perm模式

    文件的权限位恰好是模式(八进制或符号)。由于需要精确匹配,如果您想将此形式用于符号模式,则可能必须指定相当复杂的模式字符串。例如,-perm g=w将仅匹配模式为 0020 的文件(即组写权限是唯一权限集的文件)。例如,您更有可能希望使用 ' /' 或 ' ' 形式,它与任何具有组写入权限的文件相匹配。请参阅-perm -g=w例子部分的一些说明性示例。

-perm-模式

    所有权限位模式是为文件设置的。符号模式以这种形式被接受,这通常是使用它们的方式。如果使用符号模式,则必须指定“ u”、“ g”或“ ”。o请参阅例子部分的一些说明性示例。

-perm/模式

    任何权限位模式是为文件设置的。这种形式接受符号模式。如果使用符号模式,则必须指定“ u”、“ g”或“ ”。o请参阅例子部分的一些说明性示例。如果没有权限位模式设置后,此测试会匹配任何文件(这里的想法是与 的行为保持一致-perm -000)。

-perm+模式

    已弃用的旧方法,用于搜索具有以下任何权限位的文件模式放。 你应该改用。尝试将 ' ' 语法与符号模式一起使用-perm /mode+会产生令人惊讶的结果。例如,' +u+x' 是一种有效的符号模式(相当于 +u,+x,即 0111),因此不会被评估为,而是作为精确的模式说明符,所以它匹配具有精确权限 0111 的文件,而不是设置了任何执行位的文件。 -perm +mode-perm mode如果您发现本段内容令人困惑,那么您并不孤单 – 只需使用.-perm /mode 这种形式的-perm测试已被弃用,因为 POSIX 规范要求将前导 ' ' 解释+为符号模式的一部分,因此我们转而使用 ' /'。

参考:

  • 查找(GNU findutils)4.4.2

相关内容