恢复root密码似乎很令人恐惧,但是不必困难或复杂。在RHEL / CentOS版本7或更高版本的系统上,由于使用了Grub引导程序,它实际上非常简单。

  1. 首先开始烧开水烧开水壶(可选,但建议)。
  2. 首先,您需要控制台访问权限:在键盘上进行本地监视或通过虚拟机远程控制台进行监视,都需要查看引导加载程序并与之交互。
  3. 重新引导计算机:引导加载程序显示选择屏幕后,请快速向上和向下点击向上和向下箭头以暂停倒计时。
  4. 选择您要引导到的内核,然后点击' e':这将带您进入一个屏幕,您可以在其中编辑grub引导加载程序脚本。
  5. 找到引用内核的那一行:这里将有一系列的“引导参数”:这些是在内核加载过程中传递的指令。
  1. 对于RHEL / CentOS 7,该行以“ linux16”开头。
  2. 对于RHEL / Centos 8x和Fedora,该行以' linux'开头。
  1. 在该行的末尾添加“  rd.break”(您可以在此处做其他事情,但是现在,这就是您所需要的)[注:此更改是暂时的]。如上图所示
  2. 现在点击Ctrl-x以运行编辑后的引导程序脚本。
  3. 您将引导至如下所示的“救援”提示:switch_root:/#
  4. 以读写模式重新安装根分区,以便您可以运行命令。输入以下内容:mount -o remount rw /sysroot ,然后按Enter。
  5. 现在输入chroot /sysroot 并按回车。这将使您进入sysroot (/)目录,并成为执行命令的路径。 
  6. 现在,您只需使用passwd命令即可更改root的密码。PS:需要输入2次密码
  7. 接下来,在重新启动之前,您需要确保SELinux允许更改文件。在提示符下,输入:  touch /.autorelabel。这将在下次重新启动时向SELinux发出信号,通知文件系统已更改(更改的密码)并允许加载更改。这将导致整个文件系统被“重新标记”,这可能需要一段时间,具体取决于文件系统的大小和计算机的速度,因此请注意这种可能性。
  8. 键入exit以退出chroot环境,然后输入reboot
  9. 去喝杯茶,以奖励自己的聪明才智:现在水应该在沸腾了。(再次,可选,但推荐,并且高度依赖于您对步骤1的参与。)

就是这样。现在,您应该具有对该系统的root密码访问权限。