一、功能需求
RedHat 7、CentOS 7忘记root密码,通过启动到单用户模式破解密码。
二、组网图
无
三、配置步骤
1、开机,在RedHat 7 系统启动到grub菜单界面,在如下界面,摁下字母 “e”,临时编辑启动项。
2、接下来光标找到linux16这一行,修改里边的信息,引导进入单用户模式,修改方法有两种。
方法一:在linux16这一行末尾添加 rd.break 如下图,然后摁下Ctrl+x组合键,进入单用户模式。
此方法进入单用户界面,依次执行以下命令,设置密码,并重启。
switch_root:/# mount -o remount,rw /sysroot (在switch_root模式下,由于当前根目录的挂载位置和权限变化,需重新挂载 switch_root:/# chroot /sysroot sh-4.2# echo "123456" |passwd --stdin root sh-4.2# touch /.autorelabel (在根下创建.autorelabel文件,代表selinux标签验证,允许修改密码,此步骤也可在更改密码命令之前操作) sh-4.2# exit switch_root:/# exit (重启服务器)
方法二: 在linux16这一行,修改中间 “ro” 为 “rw”,修改 “rhgb quiet” 为 “init=/bin/bash”,如下图,然后摁下Ctrl+x组合键,进入单用户模式。
修改如下,Ctrl+x进入单用户模式,并且可直接执行修改密码命令。
此方法进入单用户界面,依次执行以下命令,设置密码,并重启,与第一种不同,需注意区分。
bash-4.2# echo "123456" |passwd --stdin root bash-4.2# touch /.autorelabel (在根下创建.autorelabel文件,代表selinux标签验证,允许修改密码,此步骤也可在更改密码命令之前操作) bash-4.2# exec /sbin/init (重启服务器)
四、配置关键点
RedHat 7 或 CentOS 7 与之前的6版本的破解密码方式有所不同,尤其是selinux启用情况下的影响,在破解密码过程中,必须执行 touch /.autorelabel 确保密码成功修改,否则造成修改失败,重启后仍然无法登录系统。
五、风险提示
无