CentOS 7/8 系统密码重置(root 密码恢复)
如果你忘记了 CentOS 7 或 CentOS 8 的 root
密码,无法登录系统,可以使用 单用户模式(rescue mode) 或 Live CD 进行密码重置。
方法 1:使用 GRUB 进入单用户模式(推荐)
适用于 本机访问,无法通过 SSH 登录,但可以物理访问服务器。
1. 重启系统,在 GRUB 菜单界面按 e
进入编辑模式
重启 CentOS,在 启动引导(GRUB)界面,当看到 内核启动选项 时,按下
e
进入编辑模式。
2. 修改 GRUB 启动参数
找到以 linux16 或 linux(CentOS 8) 开头的那一行:
arduino
复制编辑
linux16 /vmlinuz-xxx root=UUID=xxxxx ro crashkernel=auto rhgb quiet
将 ro
(只读)改为 rw
(读写),并在行尾添加:
ini
复制编辑
init=/bin/bash
最终修改后类似:
bash
复制编辑
linux16 /vmlinuz-xxx root=UUID=xxxxx rw init=/bin/bash
按 Ctrl + X
启动系统。
3. 重置 root 密码
系统进入 单用户模式 后,输入以下命令修改密码:
bash
复制编辑
passwd root
输入新的 root
密码(两次确认)。
4. 重新创建 SELinux 密码标签
bash
复制编辑
touch /.autorelabel
说明:
CentOS 7/8 默认启用 SELinux,如果不执行
touch /.autorelabel
,重启后仍然无法登录。
5. 重启系统
bash
复制编辑
exec /sbin/init
或者使用:
bash
复制编辑
reboot -f
重启后,即可使用新密码登录系统!
方法 2:使用 Live CD 进行密码重置
如果服务器 无法正常启动,可以使用 CentOS Live CD(U 盘)进入救援模式修改密码。
1. 启动 Live CD
使用 CentOS 7/8 的 ISO 镜像 制作 U 盘启动盘(如
Rufus
)。启动系统时,选择 “Troubleshooting” > “Rescue a CentOS System”。
2. 进入救援模式
选择 “Continue” 进入救援模式。
运行以下命令,挂载系统:
bash
复制编辑
chroot /mnt/sysimage
3. 修改 root 密码
bash
复制编辑
passwd root
输入新的 root
密码。
4. 重新创建 SELinux 标签
bash
复制编辑
touch /.autorelabel
5. 退出并重启
bash
复制编辑
exit reboot
总结
🚀 推荐使用 GRUB 单用户模式,最快速恢复 root 密码!
4o