📌 这一页讲两件事:文件权限(Linux 最容易出错的地方)和运行级别。
六、权限管理
6.1 先看文件类型
ls -l 输出的第一个字符表示文件类型:
| 标识 | 类型 |
|---|---|
- | 普通文件 |
d | 目录 |
l | 链接 |
b | 块设备,比如硬盘 |
c | 字符设备文件,比如键盘鼠标 |
6.2 三组权限
-rwxr-xr-x 1 root root ...
│└┬┘└┬┘└┬┘
│ │ │ └── 其他组(o)权限
│ │ └───── 所属组(g)权限
│ └──────── 所有者(u)权限
└────────── 文件类型
🔑 重点:w代表修改权限,但不代表删除权限。
能不能删一个文件,取决于你对它所在目录有没有w权限 —— 这一点非常反直觉。
6.3 chmod 改权限
字母方式:
chmod u=rwx,g=rx,o=x 文件/目录 # 分别设置三种角色
chmod o+w 文件/目录 # 其他人增加 w 权限
chmod a-x 文件/目录 # 所有人撤去 x 权限
chmod u+x,g-w 文件 # 逗号分隔,可以做多种修改
u所有者 ·g所有组 ·o其他人 ·a所有人(ugo 的总和)
数字方式:
chmod 755 文件/目录
chmod 000 文件/目录 # 这个就完全无权限了
| 权限 | 数字 | 组合 | 数字 | |
|---|---|---|---|---|
r 读 | 4 | rwx | 7 | |
w 写 | 2 | rw- | 6 | |
x 执行 | 1 | r-x | 5 | |
- 无 | 0 | r-- | 4 |
⚠️ 如果要对文件夹内的文件操作,必须拥有该目录的权限。
实在改不动,就只能让 root 或文件所有者来改。
6.4 补充:三个配置文件到底长什么样
这三个文件前面提过,这里把每一行的含义补上。
/etc/passwd —— 用户配置文件
记录用户的各种信息,每行的含义是:
用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录Shell

/etc/shadow —— 口令(密码)配置文件
登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 :
警告时间 : 不活动时间 : 失效时间 : 标志
💡 密码是加密后存在这里的,所以/etc/shadow的权限是000(只有 root 能读)。
/etc/group —— 组配置文件
组名 : 口令 : 组标识号 : 组内用户列表

6.5 补充:shell 是什么
你敲的指令不会直接发给内核 —— 内核不认识 ls 这种"人话",中间需要一个翻译:
cd → shell → Linux 内核
(解析)
bash / tcsh / csh
这个"中间人"就是 shell。 shell 有很多种(bash、tcsh、csh……),平时说的 shell 一般指 bash。

七、运行级别
7.1 七个级别
| 级别 | 含义 |
|---|---|
| 0 | 系统停机状态。⚠️ 默认不能设为 0,否则不能正常启动 |
| 1 | 单用户工作状态,root 权限,用于系统维护,禁止远程登录 |
| 2 | 多用户状态(没有 NFS),不支持网络 |
| 3 | ⭐ 完全的多用户状态(有 NFS),无界面,进入控制台命令行 |
| 4 | 系统未使用,保留 |
| 5 | X11 控制台,进入图形 GUI 模式 |
| 6 | 系统正常关闭并重启。⚠️ 默认不能设为 6 |
init 3 # 切换运行级别
systemctl get-default # 查看当前运行级别
💼 工作一般用 3 级别,节约资源(服务器不需要图形界面)。
7.2 CentOS 7 之后:runlevel 变成了 target
CentOS 7 之后 /etc/inittab 被简化了,运行级别改用 target 表示:
| runlevel | target |
|---|---|
| 3 | multi-user.target |
| 5 | graphical.target |
systemctl get-default # 查看当前默认 target
systemctl set-default multi-user.target # 改成命令行模式(对应 runlevel 3)
改完之后如果重启,机器会进入 3 级别(命令行)。

7.3 实战:找回 root 密码
忘了 root 密码进不去系统?可以用单用户模式重置。
步骤:
- 启动系统,在开机界面按
e进入编辑界面 - 找到
linux16这一段,在这一段的最后加一个空格(一直按→移过去) - 输入
init=/bin/sh进入单用户模式 - 按
Ctrl + X启动,进入单用户模式 - 输入
mount -o remount,rw / - 输入
passwd设置密码(输入两次),成功时光标会闪烁 - 末行输入
touch /.autorelabel - 输入
exec /sbin/init,等待系统重启即可重置密码
⏳ 提醒:第 8 步时间可能有点长,不是死机了,耐心等。

这一页的要点
- 删除权限看的是目录的
w,不是文件的w—— 最容易搞错的一点 chmod两种写法:字母(u+x)和数字(755),数字更常用/etc/passwd、/etc/shadow、/etc/group三个文件的字段含义要认识- 指令 → shell 解析 → 内核,shell 一般指 bash
- 服务器用 runlevel 3 / multi-user.target,省资源
- 忘记 root 密码可以用单用户模式重置,记得那 8 步