RHEL7恢复root密码

浏览次数:2731 关键词 ( 密码  root  )

Preface

几天前有个小比赛,有用到这点的知识。之所以整理出来是因为,自己在比赛的时候被晚上的给的文章啊教程啊给坑了!这么多的文章全都是一个抄一个,有多少是编者自己亲自实验的!有的方法根本就行不通,拿着旧版本的方法来套用,结果根本没有用处。我也是糊涂,没有好好自己地钻研就轻信了网上一模一样的教程。比赛后的几天,我特地找了网上的很多文章,并亲自去实验,将现行可用的方法与注意点整理出来。(因为没有考证具体的背后的原理,此处只贴出做法。)


恢复root密码方法
方法一:

rd.break方法:

1. 进入菜单

在启动页面的启动项时,按下e进入编辑菜单

2. 修改启动参数

在linux16开头的地方,按End跳都末尾,输入rd.break如下图1所示


图1

 

3. 更改读写状态

因为默认情况下,mount后,/sysroot的权限ro=readonly,无法修改/sysroot/etc/shadow文件,不信的可以自己做下实验,就会发现shadow文件不可写。如图2。

mount -o remount,rw /sysroot

 


图2

 

4. 改变根chroot

chroot /sysroot

5. 修改root用户的密码

echo “RedHat” | passwd –stdin root

6. 让SELinux生效

touch /.autorelabel

7. 退出当前

Ctrl+D退出当前状态

8. 重启进入系统

reboot


方法二:

init=/bin/sh方法:

1. 进入菜单

在启动页面的启动项时,按下e进入编辑菜单

2. 修改启动参数

在linux16开头的地方,按End跳都末尾,将rhgb quiet修改成init=/bin/sh如下图3所示:

 


图3

 

 





PS:此处一定要把rhgb quiet给去掉并修改成init=/bin/sh,虽然同样可以进入到/bin/sh中,不过会导致图4的情况: 

图4

 

3.同方法一一样的思路步骤

mount -o remount,rw / 
echo “RedHat” | passwd –stdin root 
touch /.autorelable 
exec /sbin/init


方法三:

rw=/sysroot/bin/sh方法:

同方法二一样,只是不需删除rhgb quiet,只需把ro改成rw=/sysroot/bin/sh即可。如图5所示: 


图4