Chmod 权限计算器

复选框、八进制与符号三向联动,一键生成 chmod 命令

权限编辑
所有者(u)
属组(g)
其他人(o)

三组里复选框、八进制与符号互为镜像,改任意一处,其余两处立即换算。符号末位写 s、S、t、T 可以直接开关特殊位。

特殊权限位

setuid 显示在所有者的执行位,setgid 显示在属组的执行位,粘滞位显示在其他人的执行位。勾选后八进制变成 4755 这样的四位数。

常用预设

点击即套用,与当前权限一致的预设会保持高亮。

命令里的目标名,可替换成实际路径,例如 /var/www/html。

八进制(含特殊位)755
二进制(每组对应 rwx)111 101 101
符号串(ls 风格)
rwxr-xr-x
数字式命令
chmod 755 file
符号式命令
chmod u=rwx,g=rx,o=rx file

数字式里前导 0 可省略,0755 与 755 等价。含特殊位时写满四位,例如 4755。

使用说明

  1. 在所有者、属组、其他人三个区块勾选读取、写入、执行,八进制、符号串与结果区实时刷新。
  2. 也可以直接改某个区块的八进制数字或三位符号,复选框与另一处同步换算,符号末位可写 s、S、t、T。
  3. 需要 setuid、setgid 或粘滞位时勾选特殊权限位,八进制会显示为 4755 这样的四位数。
  4. 点预设一键套用 644、755、4755 等常见组合,再按需微调单个权限位。
  5. 把目标名改成实际路径,复制数字式或符号式命令到终端执行即可。

目录与文件的权限差异

同一个 rwx,在文件和目录上含义不同?
对文件来说,r 是读取内容,w 是修改内容,x 是作为程序执行。对目录来说,r 是列出目录内的条目名,w 是在目录里新建、改名或删除条目,x 是进入目录并访问其中的条目。
为什么删除文件看的是目录的 w?
文件名只是目录里的一条记录。删除或改名改的是目录的内容,只需要目录的 w 和 x,与文件自身权限无关。想防止文件被误删,只去掉文件的 w 不够,还要收紧所在目录的 w。
目录缺少 x 会怎样?
典型症状是能列出文件名却打不开,提示 Permission denied。只有 r 没有 x 的目录允许浏览条目名,不允许进入,也读不到条目内容。目录通常至少要有 x,需要被浏览时再加 r。

常见问题

755 和 644 分别适合什么场景?
755 表示所有者可读写执行,其他人只能读和执行,适合目录、可执行脚本与程序目录。644 表示所有者可读写,其他人只读,适合普通网页与配置文件。虚拟主机最常见的搭配是目录 755 加文件 644。
777 有什么风险?
777 允许任何用户写入并执行,网页文件可能被篡改,脚本可能被植入恶意代码。需要多人共同写入时,更稳妥的做法是用属组权限配合 setgid 目录,而不是对所有人放开。
setuid、setgid 与粘滞位分别用在哪里?
setuid 让可执行文件以属主身份运行,典型例子是 passwd。setgid 加在目录上,新文件会继承目录的属组,适合团队共享目录。粘滞位常见于 /tmp,用户只能删除自己拥有的文件。符号串里小写 s、t 表示特殊位加执行位,大写 S、T 表示有特殊位但没有执行位。
勾选与计算会上传到服务器吗?
不会。复选框状态、八进制换算与命令生成全部在浏览器本地完成,页面不发出任何网络请求,输入内容不会离开当前设备。

使用步骤

  1. 勾选权限位

    在所有者、属组、其他人三个区块里勾选读取、写入、执行,八进制、符号串与命令输出同步刷新。

  2. 直接输入数字或符号

    每个区块提供八进制数字与三位符号输入框,改任意一处,复选框与另一处立即换算,符号末位可写 s、S、t、T。

  3. 套用预设与特殊位

    点 644、755、4755 等预设一键填入常见组合,特殊位可单独勾选,四位数写法自动出现。

  4. 复制命令去执行

    在目标名框改成实际路径,结果区给出数字式与符号式两条命令,点复制即可粘贴到终端。

工具详细介绍

Linux 把文件权限分成所有者、属组与其他人三组,每组各有读取、写入、执行三个开关,合称 rwx。每个开关对应一个数值,读取记 4,写入记 2,执行记 1,相加得到 0 到 7 的八进制数字,三组数字连写就是 755 这样的权限值。符号表示把同样的信息展开成 rwxr-xr-x,每三个字符对应一组,短横线表示该位关闭。两种写法可以互相换算,数字式适合在命令里一次性赋值,符号式更适合描述改动,例如只给属组加执行位。

本工具把三组权限拆成九个复选框,配上每组的八进制数字与三位符号输入框,三处任意一处改动都会同步到其余两处。特殊权限位 setuid、setgid 与粘滞位各占一个八进制位,勾选后显示为 4755 这样的四位数。符号串里会相应出现大写或小写的 s 与 t。常见组合做成一键预设,当前权限命中的预设会高亮提示。结果区给出数字式与符号式两条 chmod 命令,目标名可以自由替换。全部换算在浏览器本地完成,输入内容不会上传服务器。

原理与背景

八进制与符号是同一组开关的两种记法。九个基本位按组折算成三个 0 到 7 的数字,特殊位再增加一个更高的八进制位。setuid 记 4,setgid 记 2,粘滞位记 1,于是出现 1777、4755 这类四位数写法。符号表示把这个高位放进对应组的执行位上:小写 s 表示特殊位与执行位同时开启,大写 S 表示只有特殊位,粘滞位同理用 t 与 T 区分。换算器据此保证三条路径一致,改符号会重算数字,改数字也会重排复选框。

数字式与符号式命令的行为有差别。数字式是绝对赋值,chmod 755 file 会把九个位全部重设,包括清掉特殊位。符号式按 组=权限 的形式逐组赋值,u=rwxs 这种写法把特殊位一并交给所有者,等价于 u=rwx 加 u+s。本页两条命令始终指向同一个权限状态。执行时还要留意 umask 只影响新建文件的默认权限,不会改动已有文件。递归修改目录树时,目录需要 x 才能进入,文件加 x 表示可执行,混用同一个数值容易出错。

典型使用场景

  1. 部署网站文件

    上传程序后按惯例把目录设为 755、文件设为 644,Web 服务器读得到内容,访问者又无法改写页面。用预设一键套用两组数值,再对照符号串逐一确认,避免把配置文件或数据文件暴露成可写。

  2. 让脚本可以执行

    写好的部署脚本运行时提示 Permission denied,多半是缺少执行位。在对应区块勾选执行后得到 755 或 700,复制命令到终端补上即可。整个过程不必翻手册查数字写法,也不用登录服务器反复试错。

  3. 加固共享目录

    团队共用目录希望新文件自动归入同一属组,就给目录加上 setgid,例如 2775。再配合属组可写、其他人不可进入的基线,共享起来既方便又不失控。粘滞位则适合 /tmp 这类公共目录,人人可写但只能删自己的文件。

使用技巧

  • 记数值口诀:r 是 4,w 是 2,x 是 1,三个数相加就是该组的八进制位,7 全开,5 读加执行,4 只读。
  • 目录与文件分开想:网站部署常用目录 755、文件 644,私钥等敏感文件用 600。
  • 符号串里大写 S 或 T 说明特殊位开着但执行位没开,这通常是漏勾执行导致的无效组合。

注意事项

  • 别用 777 图省事

    777 对所有人开放写入,网页文件可能被篡改,定时任务可能被替换。排查权限问题时先收紧到 755,再按需放开单个位,比事后清理被篡改的页面便宜得多。

  • 目录与文件的 x 不同

    给文件加 x 是允许执行,给目录加 x 是允许进入。把 755 一次性递归套在整个目录树上,会让所有文件都带上执行位,多数时候无害,但会掩盖真正需要执行的文件。

  • 脚本上的 setuid 无效

    Linux 内核会忽略解释型脚本上的 setuid 位,只对二进制程序生效。想给脚本提权,需要用 sudo 或封装一层二进制。符号串里的 s 看着存在,实际运行时并不会改变执行身份,误以为生效会留下安全隐患。

相关工具