首页  /  Linux 基础  /  正文

权限管理与运行级别

Linux 基础 2026-10-01📖 10 分钟👁 —
🐧 Linux 运维基础笔记第 3 / 7 页1234567📖 完整导航 →
📌 这一页讲两件事:文件权限(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 文件                # 逗号分隔,可以做多种修改

数字方式:

chmod 755 文件/目录
chmod 000 文件/目录     # 这个就完全无权限了
权限数字组合数字
r 读4rwx7
w 写2rw-6
x 执行1r-x5
- 无0r--4
⚠️ 如果要对文件夹内的文件操作,必须拥有该目录的权限。
实在改不动,就只能让 root 或文件所有者来改。

6.4 补充:三个配置文件到底长什么样

这三个文件前面提过,这里把每一行的含义补上。

/etc/passwd —— 用户配置文件

记录用户的各种信息,每行的含义是:

用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录Shell
cat /etc/passwd 的实际输出

/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。

shell 在指令和内内核之间的位置

七、运行级别

7.1 七个级别

级别含义
0系统停机状态。⚠️ 默认不能设为 0,否则不能正常启动
1单用户工作状态,root 权限,用于系统维护,禁止远程登录
2多用户状态(没有 NFS),不支持网络
3⭐ 完全的多用户状态(有 NFS),无界面,进入控制台命令行
4系统未使用,保留
5X11 控制台,进入图形 GUI 模式
6系统正常关闭并重启。⚠️ 默认不能设为 6
init 3                    # 切换运行级别
systemctl get-default     # 查看当前运行级别
💼 工作一般用 3 级别,节约资源(服务器不需要图形界面)。

7.2 CentOS 7 之后:runlevel 变成了 target

CentOS 7 之后 /etc/inittab 被简化了,运行级别改用 target 表示:

runleveltarget
3multi-user.target
5graphical.target
systemctl get-default                          # 查看当前默认 target
systemctl set-default multi-user.target        # 改成命令行模式(对应 runlevel 3)

改完之后如果重启,机器会进入 3 级别(命令行)。

CentOS7 运行级别与 target 的对应关系

7.3 实战:找回 root 密码

忘了 root 密码进不去系统?可以用单用户模式重置。

步骤:

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

这一页的要点

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