学习目标:
了解重置root管理员密码的原理
掌握重置root管理员密码的方法
学习内容
一、理论基础
在开始重置root管理员密码操作前,先理解重置密码的底层逻辑,避免盲目操作:
本章节内容以CentOS8.5/UOS20)为例
1.GRUB 引导程序:
Linux 启动时首先加载GRUB(Grand Unified Bootloader)它是系统启动的 “桥梁”,负责引导内核启动。重置密码的关键是通过GRUB修改内核启动参数,进入特殊模式。
2.单用户模式(救援模式):
Linux系统的单用户模式是一种最小化运行环境,仅加载必要的内核和文件系统,不启动网络服务和其他进程,且默认以root权限登录(无需密码验证),这是重置密码的核心环境。
3.文件系统挂载状态:
Linux 默认将根分区(/)以 “只读(ro)” 模式挂载到单用户模式,重置密码前需手动改为 “可读可写(rw)”,否则无法修改密码文件(/etc/shadow,存储用户密码哈希)。
二、实践操作步骤
前提条件
物理机/虚拟机可直接操作本地开机界面; 远程服务器需通过控制台(如 VMware Console、阿里云 ECS 控制台、华为云 VNC)等操作。 注:(SSH 无法连接单用户模式)。
步骤 1:进入 GRUB 编辑界面
重启 CentOS8 系统,开机时屏幕会显示 GRUB 引导菜单(默认停留 5 秒左右,若未显示,可在开机时按Shift键唤醒);
菜单中选中当前使用的内核(通常是第一个选项,标注 “CentOS Linux (x.x.x-x.el8.x86_64) 8”); 按键盘上的 e 键进入 GRUB 编辑模式(此时不会执行启动,仅编辑临时启动参数)。

CentOS 8

UOS20 开机界面
步骤 2:修改内核启动参数,进入单用户模式
在编辑界面中,找到以 linuxefi /vmlinuz-xxx root=xxx ro crashkernel=auto… 开头的行(核心内核参数行);
(可选)移动光标到该行末尾,删除默认的 rhgb quiet(图形化静默启动参数,删除后显示详细启动日志);
新增单用户模式参数:rd.break(内核启动时中断正常流程,进入救援 shell);
确认修改后,按 Ctrl+X 执行启动,进入救援模式(此时系统仅加载根文件系统的临时挂载点)。

CentOS8新单用户模式参数(见红框内)

UOS20 新单用户模式参数(见红框内)
步骤 3:重新挂载根分区为可写模式
进入救援 shell 后,当前根分区(/sysroot)默认是只读挂载,
执行以下命令重新挂载为可写;
切换到系统真实根环境(chroot 命令将当前 shell 切换到系统的根目录)。
mount -o remount,rw /sysroot #重新挂载为可写
chroot /sysroot #切换到系统真实根环境
此时命令行提示符会变为 sh-4.4#(UOS20为sh-5.1#),表示已进入系统真实根环境,可执行密码修改操作。
步骤 4:重置 root管理员密码
执行密码修改命令,按提示输入新密码(密码输入时不显示明文,输入完成按回车即可):
sh-4.4# passwd root
Changing password for user root.
New password: #(输入新密码,如123@CentOS8)
Retype new password: #(再次输入新密码确认)
passwd: all authentication tokens updated successfully.
#(提示成功即表示密码修改完成)
(可选)关闭 SELinux 临时限制(避免密码修改后因 SELinux 安全策略导致登录失败): 执行以下命令创建 SELinux 上下文自动修复文件(下次重启时生效):
touch /.autorelabel

CentOS 8 重置root管理员密码

UOS 20重置root管理员密码
步骤 5:退出并重启系统
依次执行以下命令退出 chroot 环境、重新挂载根分区为只读(规范操作):
exit # 退出chroot根环境,回到救援shell
mount -o remount,ro /sysroot # 重新挂载为只读
exit # 退出救援shell,系统自动继续启动流程
系统会自动完成剩余启动步骤,或直接执行 reboot 命令重启:
reboot
步骤 6:验证密码是否生效
系统重启后,在登录界面输入新设置的 root 密码,即可成功登录系统;
若登录失败,检查以下问题:
密码是否输入正确(区分大小写、特殊字符);
是否遗漏 /.autorelabel 文件(SELinux 未关闭可能导致密码验证失败);
重新执行步骤 1-5,确认每一步命令无错误。
三、注意事项与常见问题
1.密码复杂度要求:
CentOS8 默认启用密码复杂度策略(至少 8 位,包含大小写字母、数字、特殊字符),若输入简单密码会提示错误,需按要求设置;
2.GRUB 菜单不显示:
部分服务器默认隐藏 GRUB 菜单,开机时持续按 Shift 键(BIOS 启动)或 Esc 键(UEFI 启动)即可唤醒;
3.远程服务器操作:
必须通过云厂商提供的控制台(如 ECS 实例的 VNC 连接)操作,SSH 无法连接单用户模式;
4.SELinux 相关:
若未创建 /.autorelabel 文件,重启后可能出现 “登录密码正确但无法登录”,此时可在 GRUB 编辑模式中新增 selinux=0 参数临时关闭 SELinux,登录后再调整 SELinux 策略。

