Linux/Unix 文件权限详解(小白友好版)
在 Linux/Unix 系统中,每个文件和目录都有权限设置,用来控制 谁可以读、写或执行它。这些权限就像 "门锁",决定哪些人能进入、修改或使用你的文件。
1. 权限的基本组成
Linux 文件权限由 3 个部分 组成:
- 文件类型(是文件还是目录?)
- 用户权限(文件所有者能做什么?)
- 组权限和其他人权限(同一组的用户和其他所有人能做什么?)
2. 如何查看权限?
在终端输入 ls -l(l代表 "long" 详细列表),你会看到类似这样的输出:
drwxr-xr-x 2 user group 4096 Oct 10 10:00 my_folder
-rw-r--r-- 1 user group 123 Oct 10 10:00 my_file.txt
每一行代表一个文件或目录,最前面的 10 个字符就是权限信息!
3. 权限字符串解析(以 drwxr-xr-x为例)
权限字符串由 10 个字符 组成,我们拆开来看:
| 字符位置 | 含义 | 示例(drwxr-xr-x) | 说明 |
|---|---|---|---|
| 第1个字符 | 文件类型 | d | d= 目录(folder) -= 普通文件 l= 链接(快捷方式) |
| 第2-4个字符 | 所有者(user/owner)权限 | rwx | 文件拥有者 的权限 |
| 第5-7个字符 | 所属组(group)权限 | r-x | 和文件拥有者同组的用户 的权限 |
| 第8-10个字符 | 其他用户(others)权限 | r-x | 所有其他用户 的权限 |
权限字符含义
- **
r(read) → 可读**(查看文件内容 / 列出目录内容) - **
w(write) → 可写**(修改文件 / 在目录里创建/删除文件) - **
x(execute) → 可执行**(运行脚本 / 进入目录) - **
- → 没有该权限**
4. 举个例子
(1) drwxr-xr-x(目录权限)
- **
d → 这是一个 目录(文件夹)** - **
rwx → 所有者(你) 可以 读、写、进入/执行**(rwx) - **
r-x → 同组用户 可以 读、进入**,但 不能写(修改) - **
r-x → 其他所有人 可以 读、进入**,但 不能写(修改)
通俗理解:
- 你(所有者):可以 查看、修改、删除、进入这个目录
- 你的同事(同组用户):可以 查看、进入这个目录,但 不能修改或删除
- 其他人:可以 查看、进入这个目录,但 不能修改或删除
(2) -rw-r--r--(文件权限)
- **
- → 这是一个 普通文件(不是目录)** - **
rw- → 所有者(你) 可以 读、写(修改)**,但 不能执行 - **
r-- → 同组用户 只能 读**,不能写或执行 - **
r-- → 其他所有人 只能 读**,不能写或执行
通俗理解:
- 你(所有者):可以 查看和修改这个文件
- 你的同事(同组用户):只能 查看这个文件
- 其他人:只能 查看这个文件
5. 数字权限(八进制权限,如 755、644)
除了用 rwx表示权限,Linux 还可以用 数字(0-7) 表示权限,更方便用 chmod命令修改。
权限数字对应表
| 权限 | 数字 | 计算方式 |
|---|---|---|
**r(读)** | 4 | 读权限 = 4 |
**w(写)** | 2 | 写权限 = 2 |
**x(执行)** | 1 | 执行权限 = 1 |
**-(无权限)** | 0 | 没有权限 = 0 |
计算规则:把 r、w、x的数字加起来,得到 1 位数字(0-7)。
常见权限数字
| 权限字符串 | 数字权限 | 说明 |
|---|---|---|
**rwxrwxrwx** | 777 | 所有人(你、组、其他人)都可以读、写、执行(不安全!) |
**rwxr-xr-x** | 755 | 你(所有者)可以读、写、执行,其他人只能读、执行(目录常用) |
**rw-r--r--** | 644 | 你(所有者)可以读、写,其他人只能读(文件常用) |
**rw-rw-r--** | 664 | 你和组可以读、写,其他人只能读 |
**rwx------** | 700 | 只有你能读、写、执行(私有文件/目录) |
**rw-------** | 600 | 只有你能读、写(私有文件) |
6. 如何修改权限?
(1) 用 chmod修改权限(数字方式)
chmod 755 文件名或目录名 # 设置权限为 rwxr-xr-x(755)
chmod 644 文件名 # 设置权限为 rw-r--r--(644)
示例:
chmod 755 my_folder # 让 my_folder 可读、可写、可执行(适合目录)
chmod 644 myfile.txt # 让 myfile.txt 可读、可写(但其他人只能读)
(2) 用 chmod修改权限(字母方式)
chmod u+x 文件名 # 给所有者(user)添加执行权限(+x)
chmod go-w 文件名 # 移除组(g)和其他人(o)的写权限(-w)
示例:
chmod u+x script.sh # 让你自己可以运行这个脚本
chmod go-r file.txt # 让组和其他人不能读这个文件
7. 总结(小白必记)
| 概念 | 说明 |
|---|---|
**ls -l** | 查看文件/目录的权限 |
权限字符串(如 drwxr-xr-x) | 前 10 个字符,表示 文件类型 + 用户/组/其他人的权限 |
**rwx** | 读(r)、写(w)、执行(x),-表示没有该权限 |
| 数字权限(如 755、644) | r=4, w=2, x=1,加起来就是权限数字 |
**chmod** | 用来 修改权限(如 chmod 755 文件名) |
| 常见权限 | |
- 目录:755(drwxr-xr-x)→ 你全权限,其他人可读/进入 | |
- 文件:644(rw-r--r--)→ 你可读写,其他人只读 | |
- 私有文件:600(rw-------)→ 只有你可读写 |
💡 一句话总结
- **
755(drwxr-xr-x) → 目录常用**(你全权限,别人可看可进) - **
644(rw-r--r--) → 文件常用**(你可改,别人只读) - **
600(rw-------) → 私有文件**(只有你能改)
这样,你就知道 Linux 权限怎么看了!🚀