开发者工具 · Chmod 计算器
使用 find -perm 查找全局可写文件和 setuid 二进制文件
· 为什么它很重要
chmod UNIX 访问控制
有两种权限模式导致了许多实际事件:任何人都可以更改的文件和以 root 身份运行的程序。这篇文章展示了如何使用 find -perm 查找两者以及如何处理它们。
审阅者要求提供您没有的列表 - 任何用户都可以修改哪些文件,以及哪些程序在运行时提升权限
权限审查通常从其他地方已收集的模式开始:可能是 0002、4000、2000 或完整值,例如 4755。计算器可以将这些数字解码为所有者、组和其他权限,包括三个特殊位。它不搜索目录、检查二进制文件或生成路径清单。
将每个提供的模式视为位的描述,而不是关于文件的判断。输入它,将八进制字段与符号显示和复选框矩阵进行比较,然后记录更改的内容。使用该路径的任何进程的所有权、ACL 条目、功能和身份仍然是从实际环境中收集的事实。
世界可写意味着其他类具有 w — 八进制模式 0002 以及为什么 -perm -0002 会找到它,而不管其他位如何
值 0002 隔离其他写入位。在普通的三类布局中,最后一位数字属于所有者类和组类之外的每个人,并且其写入组件的权重为 2。因此,包含该位的完整模式将在另一个类中显示 w,尽管计算器本身无法找到此类模式。
特定查找表达式是否意味着精确、全位或任意位匹配属于查找文档,而不属于此转换器。而是提供一个结果模式。例如,0666 变为 rw-rw-rw-,而 0644 变为 rw-r--r--;在组和其他写入位置中可以看到差异,但这并不意味着任一模式都适合特定路径。
0002 公开其他写入位;查找匹配语义是外部的
前导特殊位数字使用 4 作为 setuid,使用 2 作为 setgid。因此 4755 将 setuid 与普通 755 权限组合起来,而 2755 将 setgid 与相同的尾随位组合起来。计算器在渲染完整模式时单独公开这些掩码,并将它们的符号字母放置在所有者或组执行位置中。
案件带有有用的证据。如果setuid伴随owner执行,owner执行位置显示s;如果不执行它会显示 S。Setgid 在组位置遵循相同的规则。这些输出对提供的整数进行解码,但它们不检查程序、确定其所有者、运行它或决定特殊位是否合理。
4000 和 2000 解码为 setuid 和 setgid,无需审核二进制文件
权限搜索语法必须与权限算术分开。该计算器接受八进制或九字符符号模式并返回一个十二位值。它没有搜索运算符、路径谓词或匹配规则的表示,因此在此接口内无法区分精确模式查询和全必需位查询。
从每个外部搜索结果中解码模式,而不是粘贴搜索表达式。三个普通数字映射到所有者、组和其他,而可选的前导数字映射到 setuid、setgid 和 Sticky。此工作流程验证报告的位,但将搜索覆盖范围和匹配语义留给生成列表的工具。
精确、全位和任意位查找模式需要查找文档
假设在其他地方执行的审核报告 0666 和 4755。输入 0666 会产生 rw-rw-rw-,使 other-write 在最后一个三元组中可见。输入 4755 会产生 rwsr-xr-x:所有者已读取、写入和执行,并且 setuid 将所有者执行字符替换为小写 s,因为该执行位存在。
第二个命中(例如 4644)说明了为什么符号形式很重要。它呈现 rwSr--r--,大写 S 显示 setuid,而所有者执行不存在。计算器可以使这种不一致变得明显。它仍然无法识别路径、确定谁拥有该路径、检查其内容或建议删除该位。
工作示例:在不扫描路径的情况下解码提供的审计命中
不要自动修复每个异常模式。模式只是决策的一种输入,该决策还取决于目标、所有者、组和所需的操作。该页面故意不接收任何上下文。它的命令预览是惰性文本,甚至浏览器也不会打开或检查正确引用的路径。
在更改报告模式之前,一次一位地比较当前值和建议值。从 0666 中删除其他写入会产生 0664;从 4755 中删除 setuid 会生成 0755。这些算术事实是可重现的,但无论哪种更改都能保留工作量,都需要计算器之外和文章 501 的普通位演练之外的本地证据。
异常和补救需要当地所有权和工作量证据
缺少几个相关的审计维度。该路由不会查询 ACL 条目、文件功能、所有权、可写路径组件、挂载行为或强制策略。它也不执行查找、检查 PATH 或遍历存储。因此,干净的转换仅表示提供的数字和显示的字母一致。
让这些边界在任何报告中都可见。在解码模式旁边记录路径和收集方法,然后使用适当的外部工具调查身份和其他访问机制。该计算器作为符号检查很有价值,因为它拒绝无效的八进制数字并公开特殊位;它不是文件系统扫描器或修复引擎。
要点:了解您的可写和特权文件 - 并在更改之前使用 Chmod 计算器转换每个可疑模式
有用的权限审核将发现与解释分开。让外部记录的流程收集候选路径,然后使用计算器将每个返回的模式转换为显式类权限。请像检查后三位一样仔细检查可选的特殊位数字,因为 0755、2755 和 4755 共享普通权限,但描述不同的 12 位值。
最后得出一个狭隘的结论:所提供的模式包含哪些所有者、组、其他和特殊位。不要将该算术变成关于风险敞口或所需政策的不受支持的主张。计算器帮助审稿人准确读取可疑模式;在任何人更改之前,实时系统必须提供所有权、工作负载和执行证据。