HandyTools Hub

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,且要谨慎为之。
  • 以为可读目录就能进入。 目录上的读和执行承担不同职责。

相关工具

常见问题

为什么八进制字段拒绝 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 团队审校 · 最后更新