一、前言

作为站在系统顶端的那个人,偶尔也会发生忘记root密码这样的情况,对于老司机来说,这根本不用慌,有很多种办法搞定!当然,我在此所说的情况仅限于能看到启动界面能够编辑grub配置的情况或者能够挂载系统光盘进行修复的情况。其他场景并不是适用。想通过阅读本文,然后破解其他远程主机的小伙伴们在此可以绕道了,此文并不适用。

二、操作思路或步骤

(一)方案一思路(只介绍思路及重点命令,不详细截图演示操作步骤)
1.把系统盘放入光驱,设置光驱引导启动。
2.进入救急模式,把原系统根目录所在的分区挂载到当前系统的某一目录下或者直接选1的continue自动挂载。

3.按照以下步骤进行操作。

在已知密码的主机上执行:

[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而已。大家都看懂了吗?

(二)方案二思路
1.在方案一的基础上进行操作,本来想和方案一合并的,考虑到合并之后显得很混乱,就单独写了。
2.分区挂载之后,直接把/mnt/sysimage/etc/shadow文件里面的第一个“:”后面的内容直接删除。

在这一步需要注意的是:shadow的权限,在删除文字内容之前需要对该文件加读写权限,编辑完shadow文件之后保存以后去掉新加的权限。完成之后正常启动即可,系统启动之后无需输入密码,直接登录,登录进去之后passwd命令修改密码即可。非常方便!重点命令可参考方案四。

(三)方案三操作步骤
1.编辑GRUB2。

正常开启系统,内核选择界面即GRUB2引导界面,按e键,光标上下移动,找到以linux16开头的这一行,按下键盘上的End键,直接跳至这一行的末尾,再按下空格键,输入:\rd.break,别忘了这里的反斜杠,完成后按下Ctrl+X进入命令行界面,此时屏幕显示:switch_root:/#。

2.重新挂载原系统文件,并chroot到原系统根目录下。
switch_root:/# mount -o remount,rw /sysroot
switch_root:/# chroot /sysroot
3.修改密码。
sh-4.2# passwd root
sh-4.2# touch /.autorelabel
4.Ctrl+D退出,reboot系统,使用新密码登录即可。
(四)方案四思路及要点
1.前一二步操作跟方案三一模一样。
2.删除/etc/shadow文件root密码部分内容,需谨慎操作。此步骤具体操作过程跟方案二一致,主要命令如下:
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密码也是没有用的,亲测不坑!

3.Ctrl+D退出,reboot系统,输入root账号之后回车键无需输入密码即可登录,登录之后修改密码。
(五)方案五思路及要点
1.编辑GRUB。

正常开启系统,内核选择界面即GRUB2引导界面,按e键,光标上下移动,找到以linux16开头的这一行,按下键盘上的End键,直接跳至这一行的末尾,再按下空格键,输入:\rw init=sysroot/bin/sh,别忘了这里的反斜杠,完成后按下Ctrl+X进入命令行界面,依次输入以下内容:

:/# chroot /sysroot
:/# passwd
:/# touch .autorelabel
:/# exit
:/# reboot

这一步的relabel也是必不可少的一项操作,切记!

2.正常重启系统用新密码即可进入系统。
三、总结

1.还记得之前的安全加固中我把给grub2加密列为可选项吗?看完这篇文章我相信大家一定会有新的感悟。BIOS设置光盘引导是不是可以直接跳过?那么是不是应该给BIOS设置密码?其实这些都是浮云啦,管理是需要成本的,并没有多少人能够看到系统的引导过程。像我们公司,使用的私有云,平时能接触到grub2几BIOS的也就我自己或者我的领导,这时候管理制度就很关键了。

2.方案一和二是我自己摸索出来的,方案三貌似RHCSA认证第一道题就这样的,网上基本都是这种思路,在方案三的基础上,我又发散了一下思维,总结出方案四。不知道大家是否都看懂了?

3.文中很少提到或者用到vi和vim并不是我想秀,仅仅是想让命令更直接,懒人直接复制运行就行,方便快捷!如果多花点时间来理解一下这些命令,你会有意想不到的收获!

4.截图有点麻烦,还不如直接命令,看着舒服,大家照着敲效果都一样!

五方法破解Linux(CentOS7.4)系统的root密码相关推荐

  1. linux系统不知道电脑密码怎么办,Linux如何修复系统的Root密码 -电脑资料

    如果因为忘了root口令导致无法登录系统,请试用下面的方法来改忘记的root口令: 方法一: 1.重新启动系统, 2.把光标定位在该选项上按下字母"e"键进入这个引导的编辑状态: ...

  2. 在Linux环境下mysql的root密码忘记解决方法(三种)

    这篇文章主要介绍了在Linux环境下mysql的root密码忘记解决方法,详细的介绍了3种解决办法,具有一定的参考价值,有兴趣的可以了解一下. MySQL密码的恢复方法之一 1.首先确认服务器出于安全 ...

  3. linux不重启换root密码是什么原因,在Linux下修改和重置root密码的方法(超简单)

    刚开始接触linux的人,忘记了root密码可能会不知所措.想找回自己的root密码,但是又不知道方法.其实,只需要简单的几步就可以重置自己的root密码了(找回密码我也不会) 1.开机HcQBEm上 ...

  4. linux red hat 8.0 root密码破解

    简介: root用户是linux用户最大权限的用户,如果不慎将其密码忘记是不可直接更改的,只能通过破解的方式来重置root密码. linux系统的启动过程: 1 开机自检(POST),初始化部分硬件 ...

  5. 在Linux环境下mysql的root密码忘记解决方法

    在Linux环境下mysql的root密码忘记解决方法 参考文章: (1)在Linux环境下mysql的root密码忘记解决方法 (2)https://www.cnblogs.com/hgj123/p ...

  6. 在Linux环境下mysql的root密码忘记解决方法 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 2.修改MySQL的登录设置: # vi /etc/my.c

    在Linux环境下mysql的root密码忘记解决方法 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 2.修改MySQL的登录设置: # vi /etc/my.cnf ...

  7. 中标麒麟linux系统忘记root密码,中标麒麟(龙芯CPU)--忘记root密码怎么修改?

    中标麒麟桌面版和服务器版均采用GRUB2为启动器,无法通过单用户模式重置root密码.下面将介绍如何重置中标麒麟系统的root密码: 桌面版 1.修改grub2引导 在正常系统入口上按下"e ...

  8. LINUX 降低密码复杂度,centos7 环境下修改root密码报错如下: BAD PASSWORD: it is too simplistic/systematic

    问题: centos7 环境下修改root密码报错如下: BAD PASSWORD: it is too simplistic/systematic 解决: 编辑/etc/pam.d/system-a ...

  9. Centos7、Redhat7 重置root密码

    Centos7.Redhat7 重置root密码 第一步:系统开机,在选择进入系统的界面按"e"进入编辑页面. 第二步:找到以"Linux16"开头的行,在该行 ...

最新文章

  1. ndk 路径修改 超简单的方法
  2. 【机器学习】分类算法-K-近邻算法
  3. Asp.Net 分段,断点,下载
  4. Bootstrap入门(八)组件2:下拉菜单
  5. Java新职篇:多态性、封装性与继承性相互作用是什么?
  6. 关于网页导出Excel
  7. VMware Workstation 虚拟机中的 虚拟交换机和地址规划
  8. 庆祝:黑客x档案官方二级域名转向
  9. 防火墙双机热备(应用场景分析及配置)
  10. 拉格朗日松弛算法(一)——论文阅读笔记
  11. 中华传统吉祥图案集锦
  12. Tips: Python语言中,《三国演义》人物出场统计
  13. Excel数据分析(一)公式错误值与解决办法
  14. Smartbi V10.5新版本正式发布
  15. 基于JAVA校园疫情防控系统(Springboot框架) 开题报告
  16. BABvsBABAB
  17. 工作是最好的投资——图书摘录
  18. 低版本浏览器兼容处理
  19. usb禁止重定向_谈USB重定向的方式
  20. SolidWorks二次开发---装配体中打开零件时保持方向

热门文章

  1. mumu模拟器PUBG显示服务器,刺激战场使用MuMu模拟器最新的过检测方法
  2. 读书笔记:人工智能基础(高中版)
  3. 【Android -- 写作工具】Markdown 分割线
  4. 深度学习笔记其七:计算机视觉和PYTORCH
  5. JSON格式化工具下载
  6. Java 独门绝技 用Java玩谷歌小恐龙游戏 (有源码)
  7. 遗传算法求解TSP旅行商问题
  8. Android8.0后静态广播以及有序广播的使用
  9. 2020年4月西安葡萄城挂经
  10. 权威认证 | 云和恩墨zData Light存储管理软件获H3C兼容认证