权限控制
Linux权限逻辑
在 Linux 权限判断里:系统会先看用户是不是文件所有者,然后看用户是否属于文件所属组,最后才看“其他用户(others)”权限。
Linux 权限匹配是按身份优先级判断的,而不是取权限大小。就算g权限比u权限大,也只看u权限。
文件信息

权限信息
第一位字符表示文件类型
| 字符 | 含义 |
|---|---|
- | 普通文件 |
d | 目录 |
l | 软链接 |

后面 9 位是权限:
| 字符 | 含义 |
|---|---|
r | read 读 |
w | write 写 |
x | execute 运行 |
- | 没有权限 |
x权限:对于文件,表示该文件可作为程序执行,对于目录,表示可以使用cd进入
sh
rwx r-x r-x
│ │ │
│ │ └─ 其他用户权限
│ └───── 用户组权限(同组用户权限)
└──────── 文件拥有者权限权限字符的顺序是固定的
sh
r → w → xsh
drwxr-xr-x 7 zurichscud staff 224 Jul 25 2025 Applications假设当前用户是lai,那么我们可以得到如下信息:
- Applications是一个目录
- 对于文件拥有者zurichscud,他的权限是
rwx - 对于staff用户组,拥有
r-x权限 - 对于其他用户,这里是lai,拥有
r-x权限
修改权限
chmod修改文件、文件夹的权限信息。
change mode
警告
只有文件的拥有者或root用户才允许修改
sh
chmod [-R] 权限 文件- -R:对文件夹中的全部内容递归操作
符号模式
| 类型 | 含义 |
|---|---|
| u | user(文件拥有者) |
| g | group(所属组) |
| o | others(其他用户) |
| a | all(所有人) |
sh
chmod [who][+|-|=][权限] 文件| 符号 | 含义 |
|---|---|
| + | 添加权限 |
| - | 移除权限 |
| = | 重新设置权限 |
- 给用户增加执行权限:
sh
chmod u+x file.sh- 给组用户增加读权限:
sh
chmod g+r file.txt- 移除其他用户写权限:
sh
chmod o-w file.txt- 给所有用户执行权限:
sh
chmod a+x script.sh- 重置用户权限
sh
chmod u=rwx hello.txt- 多个一起写:
sh
chmod u+rwx,g+rx,o+r file
chmod u=rwx,g=rx,o=x hello.txt数字模式
三种权限正好可以用三位二进制表示:
| 权限 | 二进制 | 十进制 |
|---|---|---|
| r | 100 | 4 |
| w | 010 | 2 |
| x | 001 | 1 |
| - | 000 | 0 |
推理过程:
sh
rwx ->111 ->7
r-x ->101 ->5sh
chmod num filenum由三位数字分别表示:
sh
owner group otherssh
chmod 755 file- 设置所有权限:
sh
chmod 777 file修改文件所有者
chown 用来 修改文件或目录的所有者(owner)和所属组(group)
sh
chown [-R] [用户] [:用户组] PATH-R: 递归修改目录及其内部所有文件
警告
只有root用户才允许修改文件拥有者
- 只改所有者
sh
chown alice hello.txt- 只改所属组
sh
chown :staff hello.txt- 递归修改
sh
chown -R alice:staff demo