Appearance
Linux 文件权限详解
1. 核心概念三要素
Linux 中每个文件/目录都有三个关键属性:
- 所有者(Owner):文件的创建者/拥有者(通常是用户账户)
- 所属组(Group):文件所属的用户组(多个用户可属于同一组)
- 其他人(Others):除所有者和组外的所有用户
📌 三者关系图解:
[用户]──所有者──> [文件] └─所属组─┐ [用户]──────────┘ [其他用户]───────> 其他人
2. 权限类型
权限分为三种操作级别:
| 权限字母 | 权限值 | 文件含义 | 目录含义 |
|---|---|---|---|
| r | 4 | 读取文件内容 | 列出目录中的文件 |
| w | 2 | 修改文件内容 | 创建/删除目录内的文件 |
| x | 1 | 作为程序执行 | 进入目录(cd) |
🔍 示例图解:
文件:report.txt - r w - → 可读可写,不可执行 目录:/projects/ d r w x → 可列出文件、可创建文件、可进入
3. 权限查看(ls -l 图解)
执行 ls -l 显示的信息结构:
bash
-rwxr-xr-- 1 alice dev-team 1024 Aug 10 09:00 script.sh▶️ 拆解分析:
| 部分 | 含义 | 示例值 |
|---|---|---|
| 第 1 字符 | 文件类型(-文件,d目录) | - |
| 权限 9 字符 | 分三组(见下图) | rwxr-xr-- |
| 所有者 | 文件拥有者 | alice |
| 所属组 | 文件所在组 | dev-team |
🔑 权限 9 字符图解:
r w x r - x r - -
─┬─── ─┬─── ─┬───
│ │ └── 其他人权限(r--:只读)
│ └─── 所属组权限(r-x:读+执行)
└─── 所有者权限(rwx:读+写+执行)4. 权限的数字表示(八进制)
权限可用 3 位数表示,每位数=权限值之和:
| 权限 | r(4) | w(2) | x(1) | 计算 | 结果 |
|---|---|---|---|---|---|
| 所有者 | ✓ | ✓ | ✓ | 4+2+1 | 7 |
| 组 | ✓ | ✗ | ✓ | 4+0+1 | 5 |
| 其他 | ✓ | ✗ | ✗ | 4+0+0 | 4 |
▶️ 示例:rwxr-xr-- = 754
5. 权限修改命令
修改权限 →
chmodbash# 符号模式(适合初学者) chmod u+x file.txt # 给所有者添加执行权限 chmod g-w file.txt # 移除所属组的写权限 chmod o=r file.txt # 其他人设为只读 # 数字模式(常用) chmod 644 file.txt # rw-r--r--修改所有者/组 →
chown,chgrpbashchown alice file.txt # 修改所有者 chown alice:dev-team file.txt # 同时修改所有者和组 chgrp dev-team file.txt # 仅修改所属组
6. 关键应用场景
目录权限规则:
- 要删除文件:需要所在目录的
w权限(而非文件的权限!) - 要访问文件:需要路径上所有目录的
x权限
📂 示例:删除
/home/alice/docs/report.txt
需要:- 对
/home/alice/docs有wx权限 - 对
report.txt本身不需要任何权限!
- 要删除文件:需要所在目录的
共享文件最佳实践:
- 将合作用户加入同一组(如
dev-team) - 设置文件权限为
775(所有者+组可读写执行,其他人只读)
bashchmod 775 shared_file.txt chown alice:dev-team shared_file.txt- 将合作用户加入同一组(如
7. 权限生效流程图
用户尝试访问文件
│
├── 是所有者? → 应用「所有者权限」
├── 是所属组成员? → 应用「组权限」
└── 其他情况 → 应用「其他人权限」💡 总结关键点
- 三身份:所有者、组、其他人
- 三权限:r(读)、w(写)、x(执行)
- 目录权限影响文件访问路径!
- 共享文件优先用组权限而非开放给所有人(安全!)
掌握这些基础后,再学习特殊权限(如 SUID/SGID)会更轻松! 🚀