主题
Linux文件权限查看与解读
课程介绍
接下来我们来学习如何查看和解读Linux文件权限。用ls -l可以看到文件详细信息,包括权限、所有者、所属组等。权限字符串像-rwxr-xr-x这样的,第一位表示文件类型,后面9位分三组表示用户、用户组和其他用户的权限。掌握这些,你就能看懂Linux的权限系统了。
1. ls -l命令输出解读
ls -l命令以列表形式显示文件和目录的详细信息,包括权限、所有者、大小和修改时间等。
命令语法
bash
ls -l [文件/目录]输出示例
bash
$ ls -l
总用量 12
drwxr-xr-x 2 yege yege 4096 Oct 15 14:30 桌面
-rw-r--r-- 1 yege yege 15 Oct 15 14:35 hello.txt输出结构分析
| 序号 | 含义 | 示例值 |
|---|---|---|
| 1 | 权限控制信息 | drwxr-xr-x 或 -rw-r--r-- |
| 2 | 所属用户 | yege |
| 3 | 所属用户组 | yege |
| 4 | 文件大小/目录项数 | 4096 或 15 |
| 5 | 最后修改时间 | Oct 15 14:30 |
| 6 | 文件名/目录名 | 桌面 或 hello.txt |
2. 权限字符串解读
权限字符串是ls -l输出的最左侧部分,包含10个字符,分为文件类型和权限两部分。
2. 1 文件类型标识(第1位)
| 标识 | 含义 |
|---|---|
- | 普通文件 |
d | 目录 |
l | 软链接(符号链接) |
c | 字符设备文件 |
b | 块设备文件 |
s | 套接字文件 |
p | 命名管道 |
2. 2 权限部分(后9位)
后9位权限分为三组,每组3位,分别代表不同用户的权限:
| 位置 | 代表用户 | 含义 |
|---|---|---|
| 2-4位 | 所属用户(User) | 文件/目录所有者的权限 |
| 5-7位 | 所属用户组(Group) | 所有者所在组的权限 |
| 8-10位 | 其他用户(Others) | 系统中其他用户的权限 |
2. 3 权限标识
每组权限包含三个字符,分别表示读、写、执行权限:
| 标识 | 含义 |
|---|---|
r | 读权限(Read) |
w | 写权限(Write) |
x | 执行权限(Execute) |
- | 无权限 |
权限字符串示例
drwxr-xr-x
│└─┴─┴─└─┴─┴─└─┴─┴─┴─
│ 所属用户 所属组 其他用户
│
文件类型(d表示目录)
-所属用户:rwx(可读、可写、可执行)
-所属组:r-x(可读、可执行,无写权限)
-其他用户:r-x(可读、可执行,无写权限)3. 权限的具体含义
rwx权限对于文件和目录有不同的含义,需要分别理解。
3. 1 针对文件的权限
| 权限 | 含义 |
|---|---|
r | 可以读取文件内容(如cat、less命令) |
w | 可以修改文件内容(如vim、echo命令) |
x | 可以将文件作为程序执行(如./script.sh) |
3. 2 针对目录的权限
| 权限 | 含义 |
|---|---|
r | 可以列出目录内容(如ls命令) |
w | 可以在目录中创建、删除、重命名文件/目录(如touch、mkdir、rm命令) |
x | 可以进入目录(如cd命令) |
权限组合示例
| 权限字符串 | 文件类型 | 所属用户权限 | 所属组权限 | 其他用户权限 |
|---|---|---|---|---|
-rw-r--r-- | 普通文件 | rw-(可读可写) | r--(只读) | r--(只读) |
drwx------ | 目录 | rwx(完全权限) | ---(无权限) | ---(无权限) |
-rwxr-xr-x | 可执行文件 | rwx(完全权限) | r-x(可读可执行) | r-x(可读可执行) |
drwxrwxrwx | 目录 | rwx(完全权限) | rwx(完全权限) | rwx(完全权限) |
4. 实操演示
4. 1 查看文件权限
bash
# 查看当前目录文件权限
$ ls -l
总用量 12
drwxr-xr-x 2 yege yege 4096 Oct 15 14:30 桌面
-rw-r--r-- 1 yege yege 15 Oct 15 14:35 hello.txt
# 查看特定文件权限
$ ls -l hello.txt
-rw-r--r-- 1 yege yege 15 Oct 15 14:35 hello.txt4. 2 分析目录权限
bash
# 查看根目录权限
$ ls -ld /
drwxr-xr-x 22 root root 4096 Oct 15 14:30 /
# 分析权限:
# - 文件类型:d(目录)
# - 所属用户(root):rwx(可读、可写、可执行)
# - 所属组(root):r-x(可读、可执行)
# - 其他用户:r-x(可读、可执行)4. 3 权限判定示例
bash
# 1. 测试根目录的执行权限(cd进入)
$ cd /
# 成功进入,说明有x权限
# 2. 测试根目录的读权限(列出内容)
$ ls -l /
# 成功列出,说明有r权限
# 3. 测试根目录的写权限(创建文件)
$ touch /test.txt
touch: cannot touch '/test.txt': Permission denied
# 创建失败,说明无w权限4. 4 跨用户权限测试
bash
# root用户创建的文件,yege用户查看
$ ls -l /1.txt
-rw-r--r-- 1 root root 10 Oct 15 14:30 /1.txt
# yege用户尝试读取
$ cat /1.txt
Hello World
# 成功读取,说明其他用户有r权限
# yege用户尝试修改
$ echo "test" > /1.txt
bash: /1.txt: Permission denied
# 修改失败,说明其他用户无w权限当用户访问文件或目录时,Linux系统按以下顺序判定权限:
- 判断是否为文件所有者:如果是,使用所属用户权限
- 判断是否属于所属用户组:如果是,使用所属组权限
- 使用其他用户权限:如果以上都不是,使用其他用户权限
5. 命令总结
| 命令 | 功能描述 | 示例 |
|---|---|---|
ls -l | 以列表形式显示文件详细信息 | ls -l |
ls -ld | 显示目录本身的详细信息 | ls -ld / |
ls -la | 显示所有文件(包括隐藏文件)的详细信息 | ls -la |
ls -lh | 以人类可读的方式显示文件大小 | ls -lh |
6. 权限理解小测验
- 权限字符串
-rwxr--r--表示什么意思? - 一个目录的权限为
drwxr-x---,哪些用户可以进入该目录? - 一个文件的权限为
-rw-r-----,文件所属组的用户可以执行该文件吗? - 如果一个用户对某个目录有读权限但没有执行权限,他可以做什么?
课程总结
这节课我们学了如何查看和理解文件权限。
权限字符串: -rwxr-xr-- (10个字符)
第一个字符:
d- 目录-- 文件l- 软链接
权限分三组,每组3个字符: 1-3位: 所有者权限(user) - rwx (读写执行) 4-6位: 用户组权限(group) - r-x (读和执行) 7-9位: 其他人权限(other) - r-- (只读)
r - 读(read) w - 写(write) x - 执行(execute)
用ls -l查看文件权限,用chmod修改权限。
课后练习
- 使用
ls -l命令查看当前目录下所有文件和目录的权限 - 分析以下权限字符串的含义:
drwx-------rwxr-xr--drwxrwxrwt
- 尝试在不同目录下创建文件,观察权限差异
- 查看系统中几个特殊文件的权限(如
/etc/passwd、/etc/shadow) - 总结普通用户对系统根目录的权限特点