进入到开机界面,按下e进入编辑模式,加上rd.break参数

按[ctrl]+x,进入RAM Disk 的环境,接下来需要切换到系统根分区环境下进行更改密码操作

chroot /sysroot:代表将你的根目录“暂时”切换到 chroot 之后所接的目录。那个 /sysroot 将会被暂时作为根目录,而/sysroot则挂载着系统的root分区,所以可以管理账号

 touch /.autorelabel:在 rd.break 的 RAM Disk 环境下,系统是没有 SELinux 的,所以当更改密码牵扯到的文件(/etc/shadow)的SELinux安全本文的特性会被取消,如果没有让系统在开机时自动恢复安全本文,会出现无法登录的情况,加上 /.autorelabel 就是要让系统在开机的时候自动的使用默认的 SELinux type 重新写入 SELinux 安全本文到每个文件去。

不过加上 /.autorelabel 之后,系统在开机就会重新写入 SELinux 的 type 到每个文件,因此会花不少的时间;如果你不想要花太多时间, 还有个方法可以处理:

  • 在 rd.break 模式下,修改完 root 密码后,将 /etc/selinux/config 内的 SELinux 类型改为 permissive
  • 重新开机后,使用 root 的身份下达“ restorecon -Rv /etc ”仅修改 /etc 下面的文件;
  • 重新修改 /etc/selinux/config 改回 enforcing ,然后“ setenforce 1 ”即可