chmod(change mode)用于修改文件/目录的读写执行权限。掌握 数值模式(八进制)与 字母模式 的换算关系,能精准控制访问权限。本文提供完整对照表、常用组合与递归操作示例。
| 读 | 写 | 执行 | |
|---|---|---|---|
| 所有者 | r (4) | w (2) | x (1) |
| 所属组 | r (4) | w (2) | x (1) |
| 其他人 | r (4) | w (2) | x (1) |
每位 = r(4)+w(2)+x(1) 的和:
| 数值 | 二进制 | 权限组合 | 字母表示 |
|---|---|---|---|
| 7 | 111 | r+w+x | rwx |
| 6 | 110 | r+w | rw- |
| 5 | 101 | r+x | r-x |
| 4 | 100 | r | r-- |
| 3 | 011 | w+x | -wx |
| 2 | 010 | w | -w- |
| 1 | 001 | x | --x |
| 0 | 000 | 无 | --- |
| 数值 | 所有者 | 所属组 | 其他人 | 典型场景 |
|---|---|---|---|---|
| 777 | rwx | rwx | rwx | 完全开放(不推荐) |
| 755 | rwx | r-x | r-x | 可执行程序、脚本、目录 |
| 700 | rwx | --- | --- | 私有脚本、SSH 私钥 |
| 644 | rw- | r-- | r-- | 普通文件、网页、配置文件 |
| 600 | rw- | --- | --- | 私有文件、密钥、数据库 |
| 666 | rw- | rw- | rw- | 共享协作文件(无执行) |
chmod [谁][+/-=][权限] 文件...
# 谁: u(所有者) g(所属组) o(其他人) a(全部)
# 操作: +增加 -移除 =设定
# 权限: r w x X(目录或已有执行位才加x) s(SUID/SGID) t(粘滞位)
# 示例
chmod u+x script.sh # 所有者加执行权
chmod go-w file.txt # 组和其他人去写权
chmod a=r,u+w doc.txt # 所有人只读,所有者可写
chmod -R u+rwX,go=rX /dir # 递归:目录加x,文件不加x
| 位 | 数值 | 字母 | 文件效果 | 目录效果 |
|---|---|---|---|---|
| SUID | 4xxx | u+s | 以文件所有者身份运行 | 无 |
| SGID | 2xxx | g+s | 以文件所属组运行 | 新建文件继承目录所属组 |
| Sticky | 1xxx | o+t | 无 | 仅所有者/root可删文件 |
示例:chmod 4755 /usr/bin/passwd(SUID)、chmod 2775 /shared(SGID)、chmod 1777 /tmp(Sticky)。

熟练使用 chmod 755、644 等数值模式配合 -R 递归,或字母模式精细调整,是 Linux 权限管理的核心技能。