忘记 Linux 服务器密码是运维中常见的挑战。处理方式主要取决于你对服务器的控制权限(物理接触、云平台权限)以及系统的安全配置。
以下是几种主流的处理方式:
| 方式 | 推荐场景 | 操作难度 | 物理/控制台依赖 |
| GRUB 引导(俗称单用户模式) | 物理机/个人机忘记密码 | 中等 | 高 (需显示器/键盘) |
| 云平台重置 | 阿里云、AWS 等云服务器 | 极低 | 低 (需管理后台权限) |
| Live CD(救援模式) | 系统损坏+密码丢失 | 高 | 极高 (需外接介质) |
注意:如果只是忘记root密码了,那么单用户会更简单,如果你是系统无法启动,或者更严重的系统故障,单用户就无法使用了,此时需要使用救援模式修复系统。
1、GRUB 引导(俗称单用户模式)
不同Linux版本,进入单用户方式不同,红帽系发行版基本相同,(almalinux9)
(1)、第一阶段:进入内核编辑界面
重启服务器:在系统启动自检完成后,进入 GRUB 引导菜单(通常是那个蓝黑色的列表界面)。

锁定内核版本:使用键盘上下键选中你平时启动的那个内核(通常是第一个)。
进入编辑模式:按下键盘上的 e 键(代表 Edit)。此时会进入内核参数编辑页面。
(2)第二阶段:修改启动参数
寻找内核行:在编辑界面中,找到以 linux16或linux 开头的行(如果是 UEFI 启动,则是 linuxefi)。

提示:该行通常包含 root=/dev/mapper/… 和 ro 等参数。
定位光标:移动光标到该行的末尾。
添加参数:在行末空一格,手动输入:init=/bin/sh
保存并启动:按下 Ctrl + x 键,系统将带着这个参数启动进入紧急模式。

(3)、第3阶段:重置密码的核心命令
进入系统后,你会看到类似 sh-4.2# 的提示符。由于此时根目录是以“只读”模式挂载在 /sysroot 下的,你需要执行以下关键步骤:findmnt / 查看挂载是不是只读

1)、重新挂载根目录为可写:
sh-4.2# mount -o remount,rw /

2)、执行修改密码:
sh-4.2# passwd root

3)、强制 SELinux 重新标记: 这是最关键的一步! 如果启用了selinux,不执行此步骤,重启后新密码将失效,且可能无法进入系统:
sh-4.2# touch /.autorelabel

4)、退出并重启:
sh-4.2# exec /sbin/init

然后登录验证,如下成功了。

方法 2:rd.break 模式(最底层)
适用场景:单用户模式进不去,需要更彻底的修复
# 1. 在 GRUB 编辑界面,找到 linux 行
# 2. 在行末添加:
rd.break

# 3. Ctrl + x 启动,会进入紧急 Shell(根在 /sysroot)
# 4. 操作步骤:
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel # SELinux 重新标记
exit
reboot


成功
发表回复