Linux 权限计算器

运维命令 完全免费 🔁 双向联动 🧮 umask 推算 ⚡ 纯前端不上传 🌙 支持黑夜模式

-rwxr-xr-x 到底是几?chmod 644 又代表什么权限?勾选 r / w / x 与特殊位即可实时算出八进制,也能直接输入 755、4755 反推勾选,顺带给出 chmod 命令、ls -l 首列、权限位拆解与 umask 推算。

类别程序员 · 运维命令
运行方式纯前端 · 本地按位运算
换算范围rwx / 3 位 4 位八进制 / 符号写法
数据存储本地保存(localStorage)

🔐 Linux 权限计算

勾选 r / w / x 与特殊位,或直接输入八进制数字,双向实时联动;同时给出 chmod 命令、ls -l 首列与 umask 推算。全部为本地按位运算,不上传任何数据。

⚡ 常用权限预设
📊 计算结果
🧩 权限位拆解(当前生效的位高亮)
🧮 umask 推算

核心特性

勾选 rwx 实时算出八进制权限
输入 755 / 4755 反推权限勾选
setuid / setgid / sticky 特殊位
三位与四位八进制同时展示
chmod 数字写法与符号写法
ls -l 首列权限串预览
12 个权限位拆解表(生效位高亮)
umask 推算新建文件 / 目录权限
常用权限预设一键套用
命令一键复制

权限为什么总要靠「背数字」?

Linux 文件权限把访问者分成 属主 u / 属组 g / 其他 o 三组,每组再用 读 r=4、写 w=2、执行 x=1 三个位表示,于是每组刚好是 0-7 的一个八进制数,三组拼起来就是常见的 755、644。想通这一点,换算其实很简单:7 = 4+2+1 = rwx,5 = 4+1 = r-x,6 = 4+2 = rw-。

真正容易踩坑的是另外两件事。一是特殊位:setuid(4000)让程序以属主身份运行、setgid(2000)让目录内新建文件继承属组、sticky(1000)让共享目录里只有文件属主能删自己的文件——它们在 ls -l 里显示为 s/t(对应 x 位缺失时显示为大写 S/T)。二是 umask:新建文件的初始权限由 666 & ~umask、目录由 777 & ~umask 决定,它和 chmod 的方向正好相反——umask 是「屏蔽掉哪些权限」,chmod 是「设置成哪些权限」。

本工具把这三层放在一起:勾选位 → 八进制 → chmod 命令 → ls -l 显示 → umask 推算,全程在本地按位运算,不上传任何内容。计算结果基于 POSIX / coreutils 的通用规则;若你的系统启用了 ACL、SELinux 或挂载了特殊文件系统(如 NTFS/FAT、NFS),实际生效权限可能被额外策略改写,请以 ls -l 与 getfacl 的实际输出为准。

怎么用

  1. 勾选权限位
    在「属主 / 属组 / 其他」三块里点选 r、w、x;需要提权场景再勾选下方 setuid / setgid / sticky 特殊位。
  2. 查看换算结果
    结果区同步显示九位符号串、三位与四位八进制、chmod 数字与符号两种命令写法,以及 ls -l 首列样式。
  3. 反向输入数字
    在「八进制模式」里输入 644、4755 等,上方勾选会自动同步,适合对着文档里的数字反查含义。
  4. 复制命令
    点命令右侧「📋 复制」把 chmod 0755 <file> 之类命令直接粘到终端执行。
  5. 推算 umask
    在 umask 框填入 022 等值,即可看到新建文件与新建目录的默认权限分别是多少。

使用技巧

  • 目录必须有 x 才能进入:只有 r 只能列出文件名,没有 x 连 cd 都进不去;644 的目录基本是废的。
  • 删除文件看的是目录权限:能否删除一个文件取决于它所在目录的 w 位,与文件自身权限无关(sticky 位除外)。
  • chmod +x 会受 umask 影响:省略 u/g/o 时(chmod +x file),POSIX 规定要先用 umask 过滤,想精确控制请写全 chmod u+x,g+x file。
  • setuid 对脚本通常无效:出于安全考虑,Linux 会忽略 Shell / Python 等解释型脚本的 setuid 位,它基本只对二进制程序生效。
  • 777 不是万能药:报权限错误先查属主属组(ls -l),用 chown 修正比直接 777 安全得多。
  • 私钥、证书类文件建议 600 或 400,~/.ssh 目录建议 700,否则 SSH 会直接拒绝使用。
  • 符号写法支持 u/g/o/a 与 +/-/=:改单个位用 chmod g+w,整体覆盖用 chmod u=rwx,go=。
  • 递归修改目录用 chmod -R,但目录需要 x、文件通常不需要,建议用 find 分开处理:find dir -type d -exec chmod 755 {} \; 与 find dir -type f -exec chmod 644 {} \;。
  • 权限检查结果按 属主 → 属组 → 其他 顺序匹配,命中即停止:属主是文件 owner 时,即使属组权限更严格也按属主权限判定。

更新记录

  • v1.0 2026-09-20 首次上线:rwx 勾选与八进制双向换算、setuid/setgid/sticky 特殊位、chmod 数字与符号命令、ls -l 首列预览、12 个权限位拆解表、umask 推算与常用权限预设。

常见问题

755、644、777 分别代表什么?
按「属主 / 属组 / 其他」三组各拆一位:755 = rwxr-xr-x,属主可读可写可执行,其他人只能读和执行,是目录与可执行脚本的常用权限;644 = rw-r--r--,属主可读写、其他人只读,是普通文件的默认值;777 = rwxrwxrwx,所有人可读写可执行,排查问题时会用,但不建议留在生产环境。
为什么 4 位数字(如 4755)的第一位不是「第四个分组」?
第一位是特殊位:4=setuid、2=setgid、1=sticky,可以相加(7=三者全开)。4755 表示在 755 基础上再加 setuid,执行该程序时进程以文件属主身份运行(/usr/bin/passwd 就是典型例子)。特殊位不影响后三位的读法,只是叠加。
chmod 和 umask 到底什么关系?
两者方向相反:chmod 是直接「设置成」某权限(chmod 644 → 结果就是 644);umask 是「屏蔽掉」某权限,作用在新建文件 / 目录的默认权限上——文件基数是 666、目录基数是 777,实际权限 = 基数 & ~umask。umask 022 时新建文件是 644、目录是 755;umask 077 时则变成 600 与 700。
为什么 chmod 改了权限还是报 Permission denied?
常见四个原因:① 属主不对——你是属组或其他人,权限再改也轮不到你,需要用 chown;② 父目录没有 x——路径上任意一级目录缺 x 都无法进入;③ 系统启用了 ACL 或 SELinux,实际限制来自 setfacl / 安全上下文,用 getfacl、ls -Z 查看;④ 文件系统是 NTFS/FAT 等不支持 Unix 权限的挂载,chmod 不生效。
目录的 r、w、x 分别意味着什么?
和文件不同:目录的 r 只能列出文件名(ls),x 才能进入并访问其中文件(cd、读取文件属性),w 才能在目录里创建 / 删除 / 重命名文件。所以「能列出但打不开」通常是有 r 没 x;「能删别人的文件」是因为对该目录有 w,与文件自身权限无关。
setuid 设了为什么没生效?
两个高频原因:① 目标是 Shell / Python 等脚本——Linux 出于安全忽略解释型脚本的 setuid 位,它只对二进制可执行文件生效;② 文件所在分区挂载时带了 nosuid 选项,或用 chmod u+s 后又被复制 / 打包工具重置了权限位。可用 ls -l 确认属主执行位是否显示为 s。
sticky 位有什么实际用途?
典型场景是共享临时目录:给目录 1777(/tmp 就是它),所有人都能在里面建文件,但只有文件属主或 root 能删除自己的文件,避免互相误删。在 ls -l 里表现为其他人的执行位变成 t(无 x 时为大写 T)。
计算结果和服务器上的实际权限不一致怎么办?
本工具按 POSIX / coreutils 的通用规则计算,是理论值。实际生效可能被 ACL(setfacl)、SELinux 安全上下文、挂载选项(noexec/nosuid/ro)或特殊文件系统改写。请以服务器上 ls -l、getfacl、ls -Z 的实际输出为准,本工具用于换算与学习,不作为线上变更依据。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码