Chmod 权限计算器
在八进制、符号表示与 chmod 写法之间转换 Unix 权限
| 读 | 写 | 执行 | |
|---|---|---|---|
| 所有者 | |||
| 用户组 | |||
| 其他人 |
Unix 文件权限决定谁可以读取、写入和执行文件,通常写成 755 这样的三位八进制数字。本计算器让你以交互方式构建权限模式,或解读别人给你的模式。为所有者、用户组和其他人勾选读、写、执行,它就会生成八进制字符串、ls -l 使用的九字符符号形式,以及 chmod 命令接受的符号写法。你也可以输入八进制值,观察复选框同步更新。
解读 3x3 网格
网格每个权限类别一行,每个权限位一列:
| 类别 | 符号 | 读 (4) | 写 (2) | 执行 (1) |
|---|---|---|---|---|
| 所有者 | u | 读取自有文件 | 修改 | 运行 / 遍历 |
| 用户组 | g | 读取组内文件 | 修改 | 运行 / 遍历 |
| 其他人 | o | 所有人 | 修改 | 运行 / 遍历 |
每一位数字是该行中已勾选位之和。三位八进制字符串就是所有者位、用户组位、其他人位。符号形式把已置位替换成对应字母、未置位替换成短横,因此每个类别的三个位置始终以 rwx 的固定顺序出现,缺失的用短横表示。
用 ls -l 查看文件时,模式显示为十个字符,例如 -rwxr-xr-x。第一个字符是文件类型,普通文件以短横开头,目录以 d 开头,其余九个正是本工具生成的符号字符串。读这个字符串只需把它按三个一组分组,每组都直接对应生成模式的一位八进制数字。
八进制数字
由于读是 4、写是 2、执行是 1,从 0 到 7 的每种组合都恰好对应一种权限三元组:
| 数字 | 权限 | 符号 |
|---|---|---|
| 0 | 无 | --- |
| 1 | 执行 | —x |
| 2 | 写 | -w- |
| 3 | 写 + 执行 | -wx |
| 4 | 读 | r— |
| 5 | 读 + 执行 | r-x |
| 6 | 读 + 写 | rw- |
| 7 | 读 + 写 + 执行 | rwx |
记住几个和就能应付大部分情况:6 是 4 + 2,5 是 4 + 1,7 是三者之和。
实操示例
- 644 —— 所有者 6 = 读 + 写,用户组 4 = 读,其他人 4 = 读。符号
rw-r--r--,chmod 写法u=rw,g=r,o=r。网页和仅由所有者编辑的配置文件的标准模式。 - 755 —— 所有者 7,用户组 5,其他人 5。符号
rwxr-xr-x,chmod 写法u=rwx,g=rx,o=rx。目录、可执行文件和脚本的常用模式。 - 600 —— 所有者 6,用户组 0,其他人 0。符号
rw-------,chmod 写法u=rw,g=,o=。常用于.env、SSH 私钥和凭据存储等私有文件。 - 700 —— 所有者 7,用户组 0,其他人 0。符号
rwx------,chmod 写法u=rwx,g=,o=。只有所有者可以进入的私有目录。 - 777 —— 所有位都置位。符号
rwxrwxrwx,chmod 写法u=rwx,g=rwx,o=rwx。授予所有人完全控制权,应作为最后手段,而非默认值。
反向输入八进制
除了勾选复选框,你还可以在输入框中输入八进制值,这在从手册或服务器报错中解读权限模式时很有用。输入限制为一到三位,每位 0 到 7。较短的值会用零左填充,所以输入 7 会被解释为 700,输入 64 会被解释为 064。出现 8 或 9、四位及以上、或空值时会显示内联错误,而不是被静默强转。
本计算器不做什么
- 不处理特殊位。 setuid(4)、setgid(2)和 sticky 位(1)需要第四位前导数字,例如 4755 或 1777。本工具只处理三位,因此无法输入这些模式。
- 不解析符号运算符。 它会显示
u=rwx,g=rx,o=rx,但看不懂chmod u+x或a+r。你需要自己把变更转换为完整模式。 - 不计算 umask。 它显示绝对模式,而不是把 umask 应用到默认值后的结果。
- 不访问文件系统。 不会更改磁盘上的任何内容;你仍需自己运行
chmod。 - 不区分文件与目录。 同一个数字对两者都合法,但执行位的实际含义不同。
常见错误
- 对网页内容设置 777。 它让任何进程或访客都能修改文件,是网站被入侵的常见原因。文件优先用 644,目录优先用 755。
- 对普通文件使用 755。 这授予了文档或图片并不需要的执行权限,扩大了攻击面。
- 对目录使用 644。 没有执行位,目录无法被进入或遍历。
- 忘记类别顺序。 各位依次是所有者、用户组、其他人,不是其他人、用户组、所有者。
- 只改一个文件而忽略其余。 权限是按文件设置的;部署后可能需要对整棵目录树运行
chmod -R,且要谨慎为之。 - 以为可读目录就能进入。 目录上的读和执行承担不同职责。
相关工具
- Cron 表达式生成器 — 构建并理解 cron 定时任务。
- 进制转换器 — 在二进制、八进制、十进制和十六进制之间转换。
- 时间戳转换器 — 在 Unix 时间戳和日期之间转换。
常见问题
为什么八进制字段拒绝 4755?
本计算器只接受一到三位八进制数字,每位必须是 0 到 7,因此它只建模三个标准权限类别(所有者、用户组、其他人)。开头的 4 是 setuid 位,位于本工具不表示的第四位,所以 4755 会被判为无效输入。setgid(2)和 sticky 位(1)同理。
网站目录和普通文件应该用哪种权限?
目录通常需要执行位才能被进入和遍历,这就是 755 常用于文件夹和脚本的原因。普通网页文件只需被读取,所以 644 是标准。把普通文件设为 755 会授予它并不需要的执行权限,把目录设为 644 则可能导致无法打开。
644 和 664 有什么区别?
两者都让所有者可读写、让所有人可读。唯一的区别在中间那位:664 还授予用户组写权限,644 则不给。只有单个用户拥有的文件用 644,只有当可信的用户组确实需要编辑文件(如共享上传目录)时才用 664。
为什么目录需要 x 位?
在目录上,读权限控制你能否列出其内容,执行权限控制你能否进入目录或按名称访问文件。没有 x,即使目录可读,像 cd 进入目录或打开已知文件路径这样的操作也会失败。这就是目录通常用 755 或 700、而绝不用 644 的原因。
所有者、用户组、其他人分别对应哪一位?
从左到右读:第一位是所有者(用户类别,符号表示中的 u),第二位是用户组(g),第三位是其他人(o)。所以在 755 中,所有者是 rwx,用户组是 r-x,其他人是 r-x。
计算器会给我的文件设置权限吗?
不会。它只计算并显示八进制和符号值。你仍需在自己的机器或服务器上运行 chmod 命令,而且在应用某个模式(尤其是递归应用)之前,应当先理解它授予了什么。
由 HandyTools Hub 团队审校 · 最后更新