CentOS 7/8忘记root密码?5步快速重置指南
-
重启进入GRUB界面
- 连续按重启键进入BIOS/UEFI设置
- 找到操作系统选项并回车(通常为第一个启动项)
- 按下Shift或Esc键进入高级启动模式
-
修改启动参数

- 在GRUB菜单中选择默认启动项
- 按 e 键进入编辑模式
- 找到包含ro quiet splash的行(通常倒数第3-5行)
- 在该行末尾添加 ro single(注意空格位置)
-
挂载文件系统
- 执行mount -o remount,rw /sysroot
- 对于CentOS 8用户,需先执行systemd-firstboot --rebuild
- 确保已加载所需模块:modprobe efiboot
-
进入恢复模式
- 执行chroot /sysroot
- 更新环境变量:source /etc/profile.d/90sysroot.sh
- 切换到恢复Shell:/bin/bash
-
重置root密码
- 修改/etc/shadow文件:sudo nano /etc/shadow
- 找到root用户的Shadow记录(前四位数字为用户ID)
- 修改密码行(示例):x:112233:0:0:root:::
- 使用openssl加密新密码:openssl passwd -1 的新密码
- 保存后退出:exit > /dev/null
- 重启系统:reboot -f
安全提示:
- 修改密码后需立即执行:chcon -t shadow_t /etc/shadow
- 建议重置密码后执行:sudo usermod -aG wheel root
- 保留原始密码记录至少7天
- 启用密码过期策略:sudo chage -M 90 root
操作验证:
- 重启后使用新密码登录
- 检查/etc/shadow文件哈希值
- 验证sudo权限恢复状态
注:此方法适用于未启用LUKS加密的CentOS系统。若系统使用硬件加密狗或IPSec VPN,需先解除相关安全绑定。
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

