作为站在系统顶端的那个人,偶尔也会发生忘记root密码这样的情况,对于老司机来说,这根本不用慌,有很多种办法搞定!当然,我在此所说的情况仅限于能看到启动界面能够编辑grub配置的情况或者能够挂载系统光盘进行修复的情况。其他场景并不是适用。想通过阅读本文,然后破解其他远程主机的小伙伴们在此可以绕道了,此文并不适用。
在已知密码的主机上执行:
[root@ChatDevOps ~]# awk -F ":" 'NR==1{print $2}' /etc/shadow
将已知密码主机终端输出内容粘贴到忘记密码的主机上,关键命令如下(将变量$2内容替换成已知密码主机屏幕显示内容):
[root@ChatDevOps ~]# awk -F ":" '{if(NR==1){$2="$6$0gOE0PHa$FO.D";}print $0}' /etc/shadow>shadow
[root@ChatDevOps ~]# sed -i '1s/ /:/g' shadow
[root@ChatDevOps ~]# chmod 000 shadow
[root@ChatDevOps ~]# mv shadow /etc/shadow
mv:是否覆盖"/etc/shadow"? y
此种情况只适用于已经开启密码投射的情况,开启和关闭密码投射的命令分别如下:
[root@ChatDevOps ~]# pwconv
[root@ChatDevOps ~]# pwunconv
如果没有开启密码投射也不用惊慌,同样的思路,只不过密码存放的文件变成了/etc/passwd而已。大家都看懂了吗?
在这一步需要注意的是:shadow的权限,在删除文字内容之前需要对该文件加读写权限,编辑完shadow文件之后保存以后去掉新加的权限。完成之后正常启动即可,系统启动之后无需输入密码,直接登录,登录进去之后passwd命令修改密码即可。非常方便!重点命令可参考方案四。
正常开启系统,内核选择界面即GRUB2引导界面,按e键,光标上下移动,找到以linux16开头的这一行,按下键盘上的End键,直接跳至这一行的末尾,再按下空格键,输入:\rd.break,别忘了这里的反斜杠,完成后按下Ctrl+X进入命令行界面,此时屏幕显示:switch_root:/#。
switch_root:/# mount -o remount,rw /sysroot
switch_root:/# chroot /sysroot
sh-4.2# passwd root
sh-4.2# touch /.autorelabel
sh-4.2# chmod u+rw /etc/shadow
sh-4.2# awk -F ":" 'NR==1{$2="";print $0}' /etc/shadow>shadow.txt
sh-4.2# sed -i '1s/ /:/g' shadow.txt
sh-4.2# sed -i 1d /etc/shadow
sh-4.2# cat shadow.txt >>/etc/shadow
sh-4.2# rm -rf shadow.txt
sh-4.2# chmod u-rw /etc/shadow
sh-4.2# touch /.autorelabel
touch /.autorelabel这一步是非常关键的,如果缺少这一步,删除root密码也是没有用的,亲测不坑!
正常开启系统,内核选择界面即GRUB2引导界面,按e键,光标上下移动,找到以linux16开头的这一行,按下键盘上的End键,直接跳至这一行的末尾,再按下空格键,输入:\rw init=sysroot/bin/sh,别忘了这里的反斜杠,完成后按下Ctrl+X进入命令行界面,依次输入以下内容:
:/# chroot /sysroot
:/# passwd
:/# touch .autorelabel
:/# exit
:/# reboot
这一步的relabel也是必不可少的一项操作,切记!
1.还记得之前的安全加固中我把给grub2加密列为可选项吗?看完这篇文章我相信大家一定会有新的感悟。BIOS设置光盘引导是不是可以直接跳过?那么是不是应该给BIOS设置密码?其实这些都是浮云啦,管理是需要成本的,并没有多少人能够看到系统的引导过程。像我们公司,使用的私有云,平时能接触到grub2几BIOS的也就我自己或者我的领导,这时候管理制度就很关键了。
2.方案一和二是我自己摸索出来的,方案三貌似RHCSA认证第一道题就这样的,网上基本都是这种思路,在方案三的基础上,我又发散了一下思维,总结出方案四。不知道大家是否都看懂了?
3.文中很少提到或者用到vi和vim并不是我想秀,仅仅是想让命令更直接,懒人直接复制运行就行,方便快捷!如果多花点时间来理解一下这些命令,你会有意想不到的收获!
4.截图有点麻烦,还不如直接命令,看着舒服,大家照着敲效果都一样!