简体中文

开发者工具 · Chmod 计算器

chmod 八进制数字如何映射到 rwx 权限位 (4, 2, 1)

· 工作原理

chmod UNIX 开发人员工作流程

八进制权限数字分为所有者、组和其他 rwx 位
原始 ToolAcre 矢量图

每个八进制数字都是三个伪装的二进制标志。这篇文章展示了将 7 转换为 rwx 并将 5 转换为 r-x 的算术,因此您可以在没有查找表的情况下读取和写入任何模式。

您不断粘贴的数字 — chmod 755 有效,但您无法说出 5 授予什么或授予谁

运行 chmod 755 因为论坛回答说这样可能会授予比应用程序需要的更多访问权限。 Unix 模式是对谁可以读取、写入或执行文件的紧凑编码;该数字不是在权限被拒绝时粘贴的任意设置。在更改之前,询问哪个身份拥有该文件、进程作为哪个组运行以及哪个操作实际失败。语法上有效的模式不能解决错误的所有者或缺少父目录执行权限的问题。

三个类别,三位数字 - 所有者、组和其他人各按固定顺序获得一位八进制数字

三个八进制数字按顺序描述三个类:所有者、组、其他。在 640 中,所有者获得 6,组获得 4,其他人获得 0。“其他”并不意味着 root 或服务帐户;而是指其他用户。这意味着在普通模式位检查下,身份既不匹配所有者也不匹配文件组。可选的前导第四位数字处理特殊模式,例如 setuid、setgid 和 Sticky,这是一个单独的主题,不应从后面的三个数字中推断出来。

读取 4、写入 2、执行 1 — 为什么权重是 2 的幂以及它们如何与 0 到 7 之间的任何值相加

每个类都有三个位,权重为读=4、写=2 和执行=1。仅添加允许的权重:7=4+2+1 (rwx)、6=4+2 (rw-)、5=4+1 (r-x) 和 0=---。它们是 2 的幂,因此三个独立标志的组合不会产生与另一个标志相同的总数。目录执行的意思是遍历,而不是“运行这个文件夹”;目录通常需要它来让用户访问其中的文件,即使文件本身具有读取权限。

工作示例:手动解码 640 和 751 — 将每个数字转换为二进制三元组,然后转换为 rwx 字母

按类解码640:6 -> 二进制110 -> rw-; 4 -> 100 -> r--; 0 -> 000 -> ---。九个权限字母是rw-r-----。解码 751:7 -> rwx,5 -> r-x,1 -> --x,给出 rwxr-x--x。请注意 751 中的“other”如何无需读取或写入即可遍历或执行。这对于目录可能是有意的,但值得对敏感文件进行审查。使用 Chmod 计算器来比较八进制和符号输出,而不是记住示例。

换个方式:从 ls -l 到八进制 — 读取 rwxr-x--- 并添加每个类的权重

从符号模式(例如 rwxr-x---)向后工作。主人有4+2+1=7,团体4+1=5,其他0;结果是 750,而不是 755。长 ls -l 显示还具有前导文件类型字符,并且可能显示 ACL 的尾随 +,因此不要将整个显示字符串输入三位数算术。对于目录,为每个类单独规划读/写/执行,而不是复制相邻文件的模式。

这不包括 - setuid、setgid 和 Sticky 的前导第四位数字,以及用加号 ls 标记的 ACL

这个由七部分组成的演练涵盖了普通的九个权限位。它不解释 setuid、setgid 和 Sticky 的前导 4、2 或 1;这些位改变程序或目录的行为方式,并在符号输出中由 s/S 或 t/T 表示。访问控制列表可以授予或拒绝超出这个简单图片的访问。 ToolAcre 计算器支持其他特殊位,但在生产系统上启用它们之前,您应该阅读它们单独的解释。

要点:模式是您可以计算的九位 - Chmod 计算器可让您在浏览器中检查任一方向的转换

模式是你可以计算的九个标志,而不是咒语。 Chmod 计算器可在浏览器中转换八进制和符号形式,以便您可以在自己执行任何 chmod 命令之前测试建议的模式。该工具不会更改您计算机上的权限:它提供字符串和推理,而您的 shell 和文件系统仍由您控制。