📝 Linux chmod 命令详解
用于修改文件或目录的访问权限,是 Linux 权限管理的核心命令。
🔐 一、权限基础
1. 三类用户
| 用户类别 |
符号 |
说明 |
| 所有者(Owner) |
u |
文件创建者 |
| 所属组(Group) |
g |
文件所属用户组成员 |
| 其他人(Others) |
o |
其他所有用户 |
| 全部(All) |
a |
u + g + o |
2. 三种基本权限
| 权限 |
符号 |
数值 |
文件作用 |
目录作用 |
| 读 |
r |
4 |
查看内容 |
列出内容(ls) |
| 写 |
w |
2 |
修改内容 |
创建/删除文件 |
| 执行 |
x |
1 |
运行脚本 |
进入目录(cd) |
⚠️ 目录必须有 x 权限才能进入!
🛠 二、两种使用方式
✅ 1. 符号模式(Symbolic)
1
| chmod [who][+/-/=][rwx] file
|
- who:
u, g, o, a
- 操作符:
+(加)、-(减)、=(设)
示例:
1 2 3
| chmod u+x script.sh chmod go-w file.txt chmod a=r myfile
|
✅ 2. 数字模式(Octal)
三位八进制数:所有者 + 组 + 其他人
| 权限组合 |
数值 |
| rwx |
7 |
| rw- |
6 |
| r-x |
5 |
| r– |
4 |
| -wx |
3 |
| –x |
1 |
| — |
0 |
常见设置:
1 2 3
| chmod 644 file.txt chmod 755 program chmod 700 private/
|
🧩 三、特殊权限(高级)
| 特殊位 |
数值 |
作用 |
| SUID |
4000 |
执行时以所有者身份运行(如 passwd) |
| SGID |
2000 |
执行时以所属组身份运行;目录中新建文件继承组 |
| Sticky Bit |
1000 |
目录中仅文件所有者可删除(如 /tmp) |
示例:
1 2 3
| chmod 4755 /usr/bin/tool chmod 2775 /shared/ chmod 1777 /tmp
|
显示效果:
-rwsr-xr-x(SUID)
drwxrwxrwt(Sticky Bit)
🧪 四、实用技巧
1. 递归修改
1
| chmod -R 755 /path/to/dir
|
⚠️ 谨慎使用!
2. 仅修改目录或文件
1 2 3 4 5
| find /path -type d -exec chmod 755 {} \;
find /path -type f -exec chmod 644 {} \;
|
3. 查看权限
输出示例:
1
| -rwxr-xr-- 1 user group 1234 Jan 1 script.sh
|
⚠️ 五、安全建议
- 普通文件不要随意加
x
- 敏感文件(如 SSH 密钥)设为
600
- Web 目录:文件
644,目录 755
- **避免使用
777**(极度危险!)
💡 六、口诀总结
4读 2写 1执行,
u/g/o 加减等;
目录无 x 不能进,
安全第一莫乱设!
📌 备注:权限问题常导致“Permission denied”,善用 ls -l 和 chmod 快速排查。