https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-terminal_menu_editing_during_boot#sec-Recovering_Root_Password
1.编辑grub引导内核参数。
将quiet与rhgb选项去掉 在行尾添加rd.break 与enforcing=0
去掉quiet,rhgb是为了让内核显示系统消息,enforcing=0是为了跳过selinux对磁盘的重新标记
如果没有该选项在重置密码的步骤需使用 touch /.autorelabel 对磁盘重新打标记。
2.修改内核引导参数后启动内核进入switch_root#模式
2.1 重新挂载系统根文件系统mount -o remount,rw /sysroot
2.2 切换根文件系统中去 chroot /sysroot
2.3 psswd 修改密码 注意:引导参数没有加enforcing=0 时,改密码后执行touch /.autorelabel
2.4 exit 推出chroot环境
2.5 将根文件系统挂载回只读模式 mount -o remount,ro /sysroot
2.6 exit 再次退出 以继续完成完成系统引导
3.0 成功进入系统后使用restorecon /etc/shadow 恢复用户密码文件的selinux上下文。
阅读官方文档发现systemd.debug-shell参数可以在引导系统是另外启动一个无需认证的shell,在tty9,此时切换到tty9上可以直接更改用户密码,无前置操作也无善后操作,直接重启即可。s亲测有效。