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
如下图3所示:
init=/bin/sh
图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所示:
图5