Linux 权限速查
Linux 文件权限用 r(读)、w(写)、x(执行)三种权限分别授予所有者、所属组和其他人,chmod 的数字写法把每组换算成 0~7 的一位八进制,如 755 即 rwxr-xr-x。Linux 权限速查工具可在数字、rwx 与 ls -l 输出之间互转,逐位解释文件和目录上的含义,推演 u+x 这类符号模式,并检查 777 等危险设置,全部在浏览器本地完成。
- 符号
rw-r--r--- ls -l
-rw-r--r--- 四位数字
0644- 规范符号
u=rw,g=r,o=r
勾选权限
| 对象 | 读 r | 写 w | 执行 x | 合计 |
|---|---|---|---|---|
| 所有者 u | 6 | |||
| 所属组 g | 4 | |||
| 其他人 o | 4 | |||
| 特殊位 | 0 |
逐位解释(文件)
rw-6 · 所有者:读、写——可以查看内容;修改内容(删除文件取决于所在目录的权限)r--4 · 所属组:读——可以查看内容r--4 · 其他人:读——可以查看内容
安全体检
没有发现问题。
常用权限
符号模式推演(按 GNU chmod 规则)
省略 u/g/o/a 时(如 +w、=rwx)会被 umask 过滤;大写 X 只在目录或已有执行位时才加 x。
umask 默认权限
- 新建文件:644
rw-r--r-- - 新建目录:755
rwxr-xr-x - 写法:
umask 0022,umask -S显示u=rwx,g=rx,o=rx;长期生效写进~/.bashrc
生成 chmod 命令
- 数字写法
chmod 644 file.txt - 符号写法
chmod u=rw,g=r,o=r file.txt
命令只在这里拼出来供你复制,页面不会执行任何命令。
如何使用Linux 权限速查
在输入框里填 chmod 数字(644、0755、4755)、9 位 rwx 符号(rwxr-xr-x),或直接粘贴 ls -l 的整行输出、stat 的 Access 行、整条 chmod 命令,工具自动识别并给出四位与三位数字、rwx 符号、ls -l 风格串和 u=rwx,g=rx,o=rx 规范写法。
在「勾选权限」网格里点所有者、所属组、其他人的读 4、写 2、执行 1,以及 SUID 4000、SGID 2000、Sticky 1000,输入框与结果会立即变成对应数字。
切换「文件 / 目录」看同一组权限在两种对象上的不同含义;安全体检会用危险、注意、说明三级指出 777、其他人可写、大写 S/T 等问题,点「改成建议值」即可替换。
在「符号模式推演」里写 u+x、go-w、a+rX 这类表达式,按 GNU chmod 规则逐子句列出结果,并标出被 umask 过滤的位、目录保留的 setgid 与大写 X 是否生效。
填好路径、按需勾选递归,复制生成的 chmod 命令;目录递归时还会给出 find 分开设权与 chmod -R u=rwX 两种更安全的写法。
关于Linux 权限速查的常见问题
- Linux 权限速查怎么用?能直接粘贴 ls -l 的结果吗
- 能。Linux 权限速查的输入框认识六种写法:chmod 数字(755、0644、4755、00755)、9 位符号(rwxr-xr-x)、带类型字符的 10 位串(-rw-r--r--、drwxrwsr-x.)、ls -l 的整行输出、stat 命令的 Access: (0644/-rw-r--r--) 行,以及整条 chmod 命令(如 sudo chmod -R 775 /var/www)。粘贴 ls -l 整行时会自动取出第一列权限串,并按首字符把对象切成文件或目录;一次粘贴多行 ls -l 输出会进入批量表,逐行给出数字与风险标记,total 行自动跳过。
- chmod 755 和 644 分别是什么权限
- chmod 755 是 rwxr-xr-x:所有者可读、写、执行,所属组和其他人可读和执行,常用于目录和脚本。chmod 644 是 rw-r--r--:所有者可读写,其他人只读,是网页、配置文件等普通文件的标准权限。区别就在执行位 x:文件有 x 才能当程序运行,目录有 x 才能进入,所以目录一般用 755,普通文件用 644。三位数字从左到右依次对应所有者、所属组、其他人,每位是读 4、写 2、执行 1 相加,7=4+2+1,5=4+1,4 就是只读。
- chmod 777 为什么不安全,该改成多少
- chmod 777 让系统上任何账号都能读、写、执行:对文件来说任何人都能改内容,被植入恶意代码的网站往往就是因为上传目录或脚本设成了 777;对目录来说任何人都能删除、改名别人的文件。一般改法是:目录 755、普通文件 644、脚本 755、只给自己用的私密文件 600。确实需要多人共同写入的目录,用 1777(带 sticky 位,人人能建但只能删自己的,/tmp 就是这样)或 2775 配合同一用户组。本工具对 777 会给出危险级提示和一键改成建议值。
- SSH 私钥权限应该设成 chmod 600 还是 400
- 两个都可以,OpenSSH 只要求私钥不能被所有者以外的人读到:600(rw-------)和 400(r--------)都满足,权限过宽时 ssh 会报 UNPROTECTED PRIVATE KEY FILE 并拒绝使用。600 更常见,因为所有者以后还能改写或替换它;400 多一层防误改。~/.ssh 目录本身用 700,authorized_keys 用 600 或 644,公钥 id_rsa.pub 可以是 644。在本工具点「常用权限」里的 600、700 可以直接看到对应的 rwx 与命令。
- chmod 里的 s 和 t 是什么权限,大写 S 是什么意思
- s 和 t 是特殊权限位。所有者位置的 s 是 setuid(4000),程序运行时以文件所有者身份执行,如 passwd;所属组位置的 s 是 setgid(2000),用在目录上可让新文件继承目录的所属组;其他人位置的 t 是 sticky(1000),用在 /tmp 这类目录上,让人只能删自己的文件。小写 s/t 表示该组同时有执行权限,大写 S/T 表示特殊位已设置但没有执行权限,例如 4644 显示为 rwSr--r--,这通常是设错了。chmod 4755 得到 rwsr-xr-x,chmod 1777 得到 rwxrwxrwt。
- chmod u+x 和 chmod +x 有什么区别
- chmod u+x 只给所有者加执行权限;chmod +x 省略了 u/g/o/a,表示「所有人,但要扣掉 umask」。umask 是常见的 022 时,+x 给三组都加上执行(因为 022 不屏蔽 x),效果与 a+x 相同;但 chmod +w 只会给所有者加写,所属组和其他人的 w 被 umask 过滤掉了,chmod =rwx 得到的是 755 而不是 777。想不受 umask 影响就明确写 a+x、a+w。本工具的符号模式推演会逐子句标出哪些位被 umask 过滤。
- umask 022 时新建文件和目录的默认权限是多少
- umask 022 时新建文件默认是 644(rw-r--r--),新建目录默认是 755(rwxr-xr-x)。算法是文件从 666、目录从 777 出发,去掉 umask 里为 1 的位;文件起点没有执行位,所以新建文件永远不会自动可执行。umask 002 时是 664 / 775,适合团队共享;umask 077 时是 600 / 700,只有自己能访问。在本工具的 umask 区输入 022 或 u=rwx,g=rx,o=rx 这样的符号写法都能算出结果。
- Linux 目录为什么要有 x 执行权限才能进入
- 目录的三种权限含义与文件不同:r 是列出里面的文件名,w 是新建、删除、重命名其中的文件,x 是进入目录并访问里面的文件。没有 x 就无法 cd 进去,也无法读取其中任何文件,哪怕那个文件本身是 644;只有 r 没有 x 时能看到文件名但看不到属性。所以目录几乎总是 r 和 x 一起给(755、750、700),而 w 没有 x 也不生效。反过来,只有 x 没有 r(如家目录 711)表示能按已知文件名访问但列不出目录内容。
- chmod -R 755 为什么会把文件也变成可执行
- chmod -R 755 会把同一个数字套到目录下的每一项,目录需要 x 才能进入,但普通文件得到 x 就变成了可执行,网站代码、图片、文本都带上执行位既不必要也不安全。推荐两种写法:一是用 find 分开设权,find 路径 -type d -exec chmod 755 {} + 与 find 路径 -type f -exec chmod 644 {} +;二是一条 chmod -R u=rwX,go=rX 路径,大写 X 只给目录和本来就可执行的文件加 x。本工具勾选「递归」并选目录后会把三种命令都生成出来;权限含 SGID、Sticky 等特殊位时大写 X 写法会丢掉它们,此时只给 find 分开设权。
- chmod 权限速查会上传数据吗?手机上能用吗
- 不会上传。Linux 权限速查的解析、推演、体检和命令生成都是浏览器里的位运算与字符串处理,粘贴的 ls -l 输出、路径和命令不会离开你的设备,也不会写进本地存储(只记住你选的文件/目录与 umask 偏好);页面只展示和复制命令,不会执行任何命令。手机浏览器打开即可使用,网格、按钮都按触屏尺寸设计。另外,macOS 的 chmod 是 BSD 版,常见写法一致,目录特殊位保留等细节以 GNU/Linux 为准。
Linux 权限速查的功能特点
- chmod 数字 ↔ rwx 符号 ↔ ls -l 串三向互转,也认 stat 输出与整条 chmod 命令
- 勾选网格实时出数字,含 setuid、setgid、sticky bit 三个特殊位
- 同一权限按文件与目录分开解释,说清 chmod 数字含义
- 符号模式(chmod u+x、go-w、a+rX)按 GNU 规则逐步推演,标出 umask 过滤与大写 X
- 安全体检:777、其他人可写、大写 S/T、目录有 r 无 x 等一眼可见
- chmod 与 find 命令一键复制,路径自动加引号,chmod -R 给出更安全的写法
- 🟢 浏览器端 · 数据不上传,可以当作离线的 chmod 在线工具或「chmod 计算器」使用
Linux 权限数字怎么算:0~7 对照表
每一位数字是读 4、写 2、执行 1 的和,三位数字依次给所有者、所属组、其他人,例如 rwxr-xr-x 是 7、5、5 即 755,-rw-r--r-- 是 644。第四位(放在最前面)是特殊位:setuid 4、setgid 2、sticky 1。八进制原理可以在 进制转换里验证。
| 数字 | 二进制 | 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 权限对照表
| 数字 | rwx | 适用场景 |
|---|---|---|
| chmod 644 | rw-r--r-- | 网页、配置等普通文件 |
| chmod 755 | rwxr-xr-x | 目录与可执行脚本 |
| chmod 600 | rw------- | SSH 私钥等私密文件 |
| chmod 700 | rwx------ | ~/.ssh 等私有目录 |
| chmod 400 | r-------- | 只读密钥(防误改) |
| chmod 640 | rw-r----- | 组内可读的配置文件 |
| chmod 750 | rwxr-x--- | 组内可进入的目录 |
| chmod 2775 | rwxrwsr-x | 团队共享目录(继承组) |
| chmod 1777 | rwxrwxrwt | /tmp 式公共目录 |
| chmod 4755 | rwsr-xr-x | setuid 程序(如 passwd) |
| chmod 444 | r--r--r-- | 所有人只读 |
| chmod 777 | rwxrwxrwx | 所有人可读写执行(危险),仅临时排查用 |
省略 u/g/o 的 chmod +w 会被 umask 过滤
很多教程说 chmod +x 等于 chmod a+x,这只在 umask 不屏蔽 x 时成立。GNU chmod 规定:省略 who 时按「所有人,扣掉 umask」处理。下表以常见的 umask 022 实测推演:
| 命令 | 原权限 | 结果 | 说明 |
|---|---|---|---|
| chmod +w | 644 | 644 | 只有所有者得到写权限:所属组与其他人的 w 被 umask 022 过滤 |
| chmod a+w | 644 | 666 | 写了 a 就不受 umask 影响,三组都加写 |
| chmod +x | 644 | 755 | x 不在 umask 022 里,三组都加上执行 |
| chmod =rwx | 000 | 755 | 省略 who 的 = 同样被过滤,得不到 777 |
| chmod a=rwx | 000 | 777 | 明确写 a 才是 777 |
GNU chmod 对目录用 755 不会清掉 setgid
团队共享目录常设成 2775,之后有人执行 chmod 755 想「改回普通权限」,结果 setgid 还在。这是 GNU coreutils 的有意设计:对目录使用不足五位的数字或不提 s 的符号写法时,保留已有的 setuid / setgid。
| 命令 | 原权限 | 结果 | 说明 |
|---|---|---|---|
| chmod 755 | 目录 2775 | 2755 | setgid 被保留(数字没提到它) |
| chmod 00755 | 目录 2775 | 755 | 五位数字明确清掉特殊位 |
| chmod g-s | 目录 2775 | 775 | 符号写法只去掉 setgid |
| chmod u=rwx,g=rx,o=rx | 目录 2775 | 2755 | 不提 s 时同样保留 |
| chmod 755 | 文件 2775 | 755 | 普通文件没有保留规则,按数字覆盖 |
chmod -R 的三种写法对照
| 写法 | 目录结果 | 普通文件结果 | 评价 |
|---|---|---|---|
| chmod -R 755 dir | 755 | 755 | 普通文件全被加上执行位,不推荐 |
| find dir -type d -exec chmod 755 {} + 与 find dir -type f -exec chmod 644 {} + | 755 | 644 | 最清楚:目录与文件分开设权 |
| chmod -R u=rwX,go=rX dir | 755 | 644(已可执行的仍为 755) | 一条命令搞定,大写 X 只给目录和本来就可执行的文件加 x |