chmod 计算器 — Linux 文件权限
在线 chmod 计算器:Linux 文件权限在八进制(755、644)与 rwx 符号之间双向转换,实时生成可复制的 chmod 命令,并自动提示 777 等高危权限。免费使用,全部在浏览器本地完成,数据不上传。
| 读取(4) | 写入(2) | 执行(1) | 数字 | rwx | |
|---|---|---|---|---|---|
| 所有者(u) | 7 | rwx | |||
| 组(g) | 5 | r-x | |||
| 其他用户(o) | 5 | r-x |
- 数字(绝对)模式
chmod 755 file- 符号模式
chmod u=rwx,go=rx file- 递归(-R)
chmod -R 755 dir- 仅目录
find dir -type d -exec chmod 755 {} +- 仅文件
find dir -type f -exec chmod 644 {} +
提示:chmod -R u+rwX 只给目录和已经可执行的文件添加执行位——比一刀切的 -R 755 更安全。
在 Linux 上,755 这样的数字 chmod 会保留目录上已有的 setuid/setgid——请用 00755、=755 或 u-s,g-s 显式清除(BSD/macOS 默认会清除)。
查看文件当前权限:stat -c '%a' file(Linux)· stat -f '%Lp' file(macOS)
umask 计算器
effective = base & ~umask
Linux 文件权限对照表:常用 chmod 值
| 八进制 | 符号 | 典型用途 | 所有者 | 组 | 其他用户 |
|---|---|---|---|---|---|
| 400 | r-------- | SSH 私钥(只读) | r-- | --- | --- |
| 600 | rw------- | 私密文件、SSH 密钥 | rw- | --- | --- |
| 644 | rw-r--r-- | 网页、配置文件 | rw- | r-- | r-- |
| 664 | rw-rw-r-- | 组可编辑文件 | rw- | rw- | r-- |
| 666 | rw-rw-rw- | 任何人可编辑——避免使用 | rw- | rw- | rw- |
| 700 | rwx------ | 私有目录 | rwx | --- | --- |
| 755 | rwxr-xr-x | 脚本、Web 目录 | rwx | r-x | r-x |
| 775 | rwxrwxr-x | 组共享目录 | rwx | rwx | r-x |
| 777 | rwxrwxrwx | 任何人可做任何事——避免使用 | rwx | rwx | rwx |
| 1777 | rwxrwxrwt | 共享临时目录(/tmp) | rwx | rwx | rwt |
权限数字 0-7 速查
| 数字 | 二进制 | rwx | 含义 |
|---|---|---|---|
| 0 | 000 | --- | 无权限 |
| 1 | 001 | --x | 仅执行 |
| 2 | 010 | -w- | 仅写入 |
| 3 | 011 | -wx | 写入 + 执行 |
| 4 | 100 | r-- | 仅读取 |
| 5 | 101 | r-x | 读取 + 执行 |
| 6 | 110 | rw- | 读取 + 写入 |
| 7 | 111 | rwx | 读取 + 写入 + 执行 |
什么是 chmod?
chmod——change mode——是 Unix 和 Linux 中设置谁可以读取、写入或执行某个文件的命令。每个文件携带九个权限位,分成三组(所有者、组、其他用户);chmod 既接受八进制数字形式的数字(绝对)模式,如 chmod 755,也接受字母形式的符号模式,如 chmod u=rwx,go=rx。两者描述的是完全相同的位,本计算器在它们之间实时互译。
八进制速记之所以成立,是因为每种权限都是 2 的幂:读取是 4,写入是 2,执行是 1,每类用户的那位数字就是它们的和。于是 7 是全部权限(4+2+1),5 是读取加执行,6 是读取加写入,0 什么都没有。把 rwxr-xr-x 从左到右按三个一组来读,就得到 7、5、5。第四位(最前面的那位)编码特殊模式——setuid(4)、setgid(2)和 sticky 位(1)——4755 或 1777 就是这么来的;它们在符号串中表现为 s 或 t 取代 x 的位置。
权限是 Unix 安全的第一道防线,日常权限问题大多能归结为几种固定模式:脚本无法运行是缺执行位(u+x),目录进不去是缺 x 位,Web 资源应该是 644 配上层 755 目录,私钥必须是 600 否则 OpenSSH 拒绝使用。错误也同样成群出现——最臭名昭著的就是 chmod 777,它用把写权限交给机器上每一个账户的方式来「修复」访问错误。本页把算术、符号、可直接运行的命令和风险警告集中在一处;既然八进制只是基数为 8 的记数法,你还可以用进制转换器探索其背后的进位算术。
# Make a script executable, then verify with ls -l $ ls -l deploy.sh -rw-r--r-- 1 jack staff 512 Jul 17 10:00 deploy.sh $ chmod 755 deploy.sh $ ls -l deploy.sh -rwxr-xr-x 1 jack staff 512 Jul 17 10:00 deploy.sh # The symbolic equivalent of 755 $ chmod u=rwx,go=rx deploy.sh # Read the current mode as a number $ stat -c '%a' deploy.sh # Linux → 755 $ stat -f '%Lp' deploy.sh # macOS → 755
核心特性
三种视图,一个状态
复选框矩阵、八进制数字和符号 rwx 串全都是可编辑的实时输入——修改任意一个,另外两个即刻跟进,双向同步。
特殊权限位处理到位
setuid、setgid 和 sticky 位是一等公民:第四位八进制数字、s/S 与 t/T 的大小写规则、正确的符号子句(u+s、g+s、a+t)都严格按照 chmod 的理解方式呈现。
ls -l 整行直接粘贴
把整行 ls -l 输出丢进符号框——文件类型字符、SELinux 点号、ACL 加号或 macOS 的 @ 都能处理——无需手动修剪即可得到八进制模式。
真正能运行的命令
数字、符号、递归以及更安全的 find -type d / find -type f 组合,每条都带复制按钮——另附读取文件当前权限的 stat 命令,以及关于清除目录 setuid 的 GNU 说明。
输入即刻触发风险提示
任何人可写的模式会立即亮起警告:777 和 666 被单独点名,任何其他用户写位都会触发提示,而 1777 会被正确识别为共享目录的 sticky 位模式而非错误。
umask、速查表与分享链接
内置的 umask 计算器显示新建文件和目录将获得的权限,两张速查表覆盖常用模式和数字 0-7,「复制链接」可分享精确状态——全部 100% 在你的浏览器中完成。
chmod 权限示例
755 — 脚本与 Web 目录的标准权限
755
rwxr-xr-x — chmod 755 file · chmod u=rwx,go=rx file
755 让所有者拥有完全控制(读 + 写 + 执行 = 4 + 2 + 1 = 7),而组和其他用户只能读取和执行、无法修改(4 + 1 = 5)。这正是部署脚本或公开 Web 目录需要的设置:服务器可以进入目录并对外提供内容,但只有所有者能改动它。计算器同时给出两种命令形式——数字模式 755 和等价的符号形式 u=rwx,go=rx——而「仅文件」命令会自动降为 644,因为普通文件不应携带用不上的执行位。
600 — 把私密文件锁定为仅所有者可用
600
rw------- — 所有者可读写,其他人一无所见
600(rw-------)是 SSH 私钥、.env 文件、API 凭据以及任何不应被本机其他账户打开的文件的正确设置。OpenSSH 会主动强制执行这一点:组或其他用户可读的私钥会被直接拒绝,并抛出著名的「Permissions 0644 ... are too open」错误。载入 600 预设,复制 chmod 600 file,风险面板保持静默——这正是最小权限基线应有的样子。
4755 — setuid 剖析:为什么 x 变成了 s
4755
rwsr-xr-x — 所有者的执行位显示为 s 而不是 x
开头的 4 是 setuid 位:无论谁运行该程序,它都以文件所有者的身份执行——passwd 之所以能让普通用户更新 root 拥有的文件,靠的就是它。在符号形式中,所有者的执行位从 x 变为 s(小写 s 表示执行位同时置位;大写 S 表示设置了 setuid 却没有执行位,这几乎总是配置失误)。计算器会渲染第四个八进制位、勾选 setuid 复选框并给出提示性警告,因为 setuid 可执行文件值得认真审视。
解码 ls -l 输出 — 整行直接粘贴
drwxr-xr-x 5 jack staff 160 Jul 17 dist
755
把 ls -l 输出中的一行原样粘贴到符号框——无需任何修剪。工具会读取第一个字段 drwxr-xr-x,把开头的 d 识别为文件类型字符(目录)而非权限位,兼容部分系统附加的 SELinux 点号、ACL 加号或 macOS 的 @,并把剩余九个字符转换为八进制 755。这是在代码评审或故障处理中回答「这个权限是几?」最快的方式,对符号链接的 l 和普通文件的 - 同样适用。
如何使用 chmod 计算器
- 1
以任意方式设置权限
按用户类别勾选读取、写入、执行复选框,输入 755 或 4755 这样的八进制值,或从预设开始——SSH 私钥 400、私密文件 600、网页文件 644、脚本 755 等等。
- 2
三种视图同时阅读
复选框矩阵、八进制值和符号 rwx 串在任意方向上保持同步,每一行都会随操作显示对应的数字和三字符片段。
- 3
复制你需要的那条命令
五条可直接运行的变体实时更新:数字模式、带智能分组的符号等价形式、递归 -R,以及基于 find -type 的更安全的仅目录/仅文件组合。
- 4
解码已有权限
把完整的 ls -l 行——连同文件类型字符、ACL 标记——粘贴进符号框,立即读出八进制值,特殊权限位也包含在内。
- 5
检查 umask 并分享结果
umask 区域显示新建文件和目录将获得的权限,「复制链接」把当前模式收进一条 URL,可直接放进代码评审或运维手册。
常见 chmod 错误
用 777 来「修复」Permission denied
把权限向全世界敞开通常只是掩盖了所有权问题而非解决它——还让机器上的每个账户都能修改你的文件。先修所有权,权限保持收紧。
sudo chmod -R 777 /var/www # 能访问了,安全也没了
sudo chown -R www-data:www-data /var/www # 修复所有权,保持 755/644
对上传目录一刀切地 chmod -R
递归数字模式用同一个值同时打在文件和目录上:755 会让每张图片、每个文档都变成「可执行」,777 则让它们任何人可写。应该按类型拆分递归。
chmod -R 777 uploads/
find uploads -type d -exec chmod 755 {} + && find uploads -type f -exec chmod 644 {} + 忘记目录需要执行位
目录上的 x 位意味着「可以进入和遍历」。644 的目录连能列出它的用户都无法 cd 进去——并在更深一层制造令人困惑的 Permission denied 错误。
chmod 644 reports/ # cd reports/ → Permission denied
chmod 755 reports/ # 目录带上 x 位才能被进入
发布脚本时忘了执行位
新创建的文件继承 umask 默认值(如 644),因此 ./script.sh 会报 Permission denied,直到至少为所有者加上执行位。CI runner 和 Docker 入口脚本天天撞上这个问题。
./deploy.sh # bash: ./deploy.sh: Permission denied
chmod u+x deploy.sh && ./deploy.sh
chmod 计算器能做什么
- 安全地部署到 Web 服务器
- 用生成的 find 命令为 nginx 或 Apache 文档根目录设置目录 755、文件 644,并让风险面板在上线前确认没有任何东西是任何人可写的。当某个目录还需要基本认证保护时,可配合 htpasswd 生成器使用。
- 修复 SSH 密钥权限
- 400 和 600 预设给出的正是 OpenSSH 对私钥的要求,FAQ 还详细讲解了私钥被组用户可读时出现的「Permissions 0644 ... are too open」报错。
- 故障排查时解码权限
- 把生产环境 shell 里的 ls -l 行直接粘贴到符号框,rwxr-sr-x 立刻变成 2755,不用在脑子里数位——特殊模式、ACL 标记和文件类型字符全都能识别。
- 搞定共享主机和 FTP 的权限数字
- 控制面板和 FTP 客户端要的是数字模式:public_html 用 755,页面用 644,含凭据的配置文件用 600。载入预设、查阅速查表、复制数字——不用猜。
- 为容器和 CI 脚本做准备
- 入口脚本和 hook 脚本需要 u+x,Docker 或 CI runner 才能执行它们,而卷挂载会继承宿主机的权限。在这里为每种情况生成精确的 chmod 命令,再用 crontab 生成器安排运行它们的定时任务。
Linux 文件权限的工作原理
- 八进制算术:4 + 2 + 1
- 每类用户占一位八进制数字,其值是读取 = 4、写入 = 2、执行 = 1 之和。八种组合全部存在:0 无权限,1 仅执行,2 仅写入,3 写 + 执行,4 仅读取,5 读 + 执行,6 读 + 写,7 三者俱全。因此 640 这样的模式读作:所有者 6(读 + 写)、组 4(仅读)、其他用户 0(无)。本页的数字速查表列出全部八行,勾选复选框时矩阵会同步展示这个求和过程。
- 数字(绝对)模式与符号模式
- chmod 用两种方式接受同样的位。数字模式陈述完整的最终结果——chmod 755 file 会替换之前的一切设置。符号模式则描述相对当前状态的变化:chmod u=rwx,go=rx file 显式设定各用户类别,而 chmod g+w file 只翻转一个位、其余保持不变。数字模式适合在脚本和部署中强制执行已知的正确状态;符号模式擅长 u+x 这类一次性调整。本计算器两种都会生成,并像有经验的管理员那样自动合并用户类别(go=rx、a=rwx)。
- setuid、setgid 与 sticky 位
- 最前面的第四位八进制数字编码特殊模式:setuid = 4000 让可执行文件以文件所有者的身份运行;setgid = 2000 对组做同样的事(并让目录中新建的文件继承其组);sticky 位 = 1000 加在共享目录上,把删除权限限制为各文件的所有者——/tmp 的 1777 就是典型。在 ls -l 中它们占据执行位的位置:执行位同时置位时是小写 s 或 t,未置位时是大写 S 或 T(通常是值得检查的配置失误)。一个 GNU/Linux 细节:数字 chmod 会刻意保留目录上已有的 setuid/setgid——用 00755 这样的五位模式、=755 这样的等号子句或 u-s,g-s 才能清除,详见 GNU coreutils 手册。BSD 和 macOS 则默认在数字模式下清除它们。
- umask 如何决定新文件的权限
- 新建文件从基数 666 出发,目录从 777 出发;进程的 umask 随后关掉其中包含的位——有效权限 = 基数 & ~umask。默认的 umask 022 屏蔽组和其他用户的写位,得到熟悉的 644 文件和 755 目录。更严格的 077 给出 600 和 700,一切仅所有者可见;协作场景的 002 给出 664 和 775,组成员可以写入。本页的 umask 区域对两种基数实时运行这套计算。
文件权限最佳实践
- 授予能工作的最小权限
- 从最紧的模式出发,只在出问题时逐步放开:私密文件 600,共享可读文件 644,只有真正需要执行或进入时才用 755。每多一个写位就多一分攻击面。
- 默认 644 文件配 755 目录
- 这对组合几乎适用于所有 Web 根目录、仓库检出和共享读取场景。普通文件很少需要执行位;目录则永远需要它才能被进入——把两者弄混是日常权限报错的最大来源。
- 递归用 find -type,别用一刀切的 -R
- chmod -R 755 会把每个文件都标成可执行。请使用本工具生成的仅目录和仅文件命令,或 GNU chmod 的大写 X(u+rwX,go+rX),它只在该加执行位的地方加。
- 服务器能触及的东西上绝不留 777
- 任何人可写的 Web 根目录和上传目录是文件注入和页面篡改的教科书路径。若多个账户确需写入,优先用共享组配 775 或 2775(setgid 保持组所有权一致),而不是把权限向全世界敞开。
- SSH 密钥保持 600——定稿后可用 400
- OpenSSH 断然拒绝组或其他用户可读的私钥。600 是工作标准;400 还能防止对不再编辑的密钥的意外覆盖。公钥和 authorized_keys 用 644 即可。
chmod 计算器常见问题
chmod 777 是什么意思?
chmod 777 危险吗?
chmod 755 和 644 有什么区别?
如何解决「Permissions 0644 for 'id_rsa' are too open」?
chmod 和 chown 有什么区别?
chmod +x 是做什么的?
如何递归地修改所有文件和目录的权限?
使用这个计算器时我的数据会被上传吗?
相关工具
查看所有工具 →进制转换器 — 二进制、十六进制、十进制、八进制互转
转换工具
在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。
颜色转换器 — HEX、RGB、HSL 与 OKLCH
转换工具
在浏览器中将 HEX 转 RGB、HSL、OKLCH、OKLAB 与 CMYK,一键复制任意格式。免费、免注册,您的颜色永远不会离开本页。
HEX 转 CMYK 转换器
转换工具
在浏览器中把 HEX 颜色转成 CMYK。基于 sRGB 的朴素近似,适合印前预览。免费、免注册,您的颜色始终保留在本地。
HEX 转 HSL 转换器
转换工具
在浏览器中把任意 HEX 颜色转成 HSL —— 3 位、6 位以及带 alpha 的 8 位全部支持。免费、即时、免注册,您的颜色永远不会离开本页。
HEX 转 OKLCH 转换器
转换工具
把 HEX 转成 OKLCH,直接喂给 Tailwind v4 设计 token。实时输出感知均匀的三元组,带 Display P3 色域提醒。免费,纯浏览器运行。
HEX 转 RGB 转换器
转换工具
在浏览器中把任意 HEX 颜色代码转成 RGB —— 3 位、6 位以及带 alpha 的 8 位 HEX 全部支持。免费、即时、免注册,您的颜色永远不会离开本页。