Linux忘记root密码后,利用GRUB2进行重置root密码的俩种方法

本文详细介绍了在Linux虚拟机中忘记root密码时,使用GRUB2的rd.break命令和内核参数重置密码的方法,以及如何设置GRUB2用户密码和密文登录,以提升系统安全。
摘要由CSDN通过智能技术生成

 注:本文所使用的虚拟机系统为Red Hat Enterprise Linux 9商业版

前言: 

我们在操作linux虚拟机时,会用到许多的命令,但是大多数的命令执行是需要管理员权限的,由于当前用户的权限不够,我们通常都会使用命令 su root 进入root用户(及管理员),在这个用户下面我们才有足够的权限去使用我们的命令来执行相应的操作,所以root密码对于我们管理员是很重要的。

作为Linux管理员忘记root密码的严重性 

忘记root密码可能会导致管理员无法管理系统,无法进行关键操作或配置更改,从而导致系统不稳定甚至无法正常运行。这可能会对系统的安全性和稳定性造成严重影响,甚至导致数据丢失或系统遭受攻击。因此,作为Linux管理员,务必妥善保管root密码,或者设置其他可靠的密码恢复机制来应对这种情况。

方法一:使用rd.break进入GRUB2系统,重置root密码

1.修改配置文件/etc/default/grub,设置liunx虚拟机默认启动项的等候时间

首先,进入GRUB2界面我们需要在虚拟机开机时的默认项中进行选择,但虚拟机开机是默认启动项的等候时间太快,导致我们并不能即时选择GRUB2并进入其界面,所以我们需要修改配置文件,来设置每次启动时需手动确认才可以,这样便可以方便进入GRUB2界面。

以管理员的身份打开VMware,将我们的虚拟机打开输入命令

[user@redhat9 ~]$ su root

进入root用户,输入命令

[root@redhat9 ~]# vim /etc/default/grub

 修改此配置文件中的值,将GRUB_TIMEOUT=5修改为-1,这样我们的虚拟机启动时就会需要你手动确认才能进入。

wq!保存后,输入reboot重启虚拟机

[root@redhat9 ~]# reboot

重启后虚拟机便会停在启动项

到这里我们的准备任务算是准备好了!

2.选择启动项进入GRUB2系统界面

上述图中给我们的启动项有俩,一般虚拟机都是俩个选项,但不排除部分有三个,但不影响哈,我们只需要选择括号中有0-rescue的选项就行了,所以虚拟机都会有的这个选项的,这就是GRUB2的选项,按下e,便可以进入GRUB2系统界面啦。

 

此界面就是GRUB2系统界面啦!

3.使用rd.break命令启动系统

 我们找到swap rhgb quite 在这后面空一格,输入以下命令后,按住ctrl加x进入系统

rd.break console=tty0

再次点击enter进入编辑模式

到这我们就已经进入了GRUB2的编辑模式啦!

4. 执行命令重新挂载文件系统

执行命令,重新挂载文件系统

mount -o remount,rw /sysroot

5.改变系统目录为临时挂载目录 

使用命令改变为临时目录

chroot /sysroot

6.使用passwd命令重置root密码 

做好所有的环境准备后,输入命令设置新的root密码。

passwd root

这里我所设的root密码是123456 

7.在根目录下创建相关文件(用于重新标记SELinux环境值) 

touch /.autorelabel

8.执行exit退出chroot环境,在使用exit重启系统 

exit

输入第二个exit后系统便会更新重启,等待加载完成后便会再次回到启动项,此时,我们可以进入虚拟机系统,来进行验证我们的root密码是否重置成功 。

进入终端后,输入刚修改的root密码后,登录root用户成功!到这我们已经成功掌握如何在忘记root密码的情况下利用系统自带的GRUB2编辑系统来进行root密码重置的方法之一啦!!

方法二:向内核转递参数,使用Shell替代默认的daemon进程来重置root密码 

经过上述方法一,相信大家都掌握了使用rd.break重置root密码啦,但是这种方法有时不能顺利进入系统启动,所以我们还需要掌握另一种方法来兜底啦,正所谓技多不压身嘛,哈哈哈,好,那么我们现在就开始吧!

1.向内核传递参数进入Shell代替的daemon进程 

进入GRUB2界面就不重复说明了,如上述方法一中,进入GRUB2界面后我们需要找到 rhgb quite 将他们改为init=/bin/bash,修改后按ctrl加x进入GRUB2编辑模式。

按ctrl加x后会弹出上述图中情况,此时我们需要等待,等待内核识别我们所传的参数。 

加载完成后便会弹出此界面,是不是很熟悉哈,与方法一大相径庭了

此时我们便进入了Shell 替代daemon的进程啦!

2.以可写的方式重新挂载根目录

使用命令重新挂载根目录

mount -o remount,rw /

3.执行passwd命令重置root密码 

 重置root密码。

passwd root

 

这里为了区别方法一,所设密码为1234567

4.执行命令,防止SELinux阻止系统正常启动

touch /.autorelabel

 

5.使用命令重启系统使其重置的root密码生效 

exec /sbin/init;exec /sbin/reboot

 

6.进入虚拟机验证重置后的root密码是否生效。

root用户登录成功!密码生效。

到这你就已经完全掌握了俩种不同的方式来进行对root密码的重置啦,再也不用担心忘记密码了,哈哈哈。

拓展:给GRUB2界面系统添加用户密码登录,以及设置密文登录。

在学会这俩种方法后,相信你以及对操作游刃有余了,但此文发布后,你能学会别人也能学会,但如果你的电脑落到他人手中,就可以轻松的修改你的root密码从而盗取重要的信息和财产,所以我们需要给我们的GRUB2界面设置一个用户登录界面,让别人无法轻易进入我们的GRUB2界面,来修改我们的root密码,话不多说,说干就干!

 1.进入虚拟机终端,以root用户登录,修改配置文件,增加一组用户密码,给grub界面添加登录界面。

[root@redhat9 ~]# vim /etc/grub.d/00_header 

 

进入该文件后在此文件最后添加以下命令,并:wq!保存退出

cat << EOF
set superusers='admin'
password admin 123456
EOF

此命令是给grub界面添加一个用户名为admin,密码为123456的用户。

2.执行命令重新生成grub.cfg文件,使此用户生效。

[root@redhat9 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 

 

3.重启虚拟机,进入GRUB2界面验证是否生效。

[root@redhat9 ~]# reboot 

若和上图一致,则说明你已掌握给GRUB2界面设置用户密码登录啦(明文登录)。

 使用密文登录GRUB2界面。

刚才的明文登录虽然能提高我们的安全性,但毕竟是明文密码,容易被破解,所以为了提高我们虚拟机数据的安全性,接下来教大家设置密文登录GRUB2界面。

1.使用工具生成你输入明文密码所对应的密文。
[root@redhat9 ~]# grub2-mkpasswd-pbkdf2
 

你只需记得你设置的明文密码,及刚输入的密码。

2.修改配置文件中的密码,将配置文件中的明文密码替换为刚生成的密文
[root@redhat9 ~]# vim /etc/grub.d/00_header
 

 3.保存退出后,使用命令使其生效

[root@redhat9 ~]#  grub2-mkconfig -o /boot/grub2/grub.cfg

 

这样你就可以使用简单的明文密码登录,而当别人破解你的密码时所看到的是你的密文,大大提高了破解的难度,同时也提高了安全性,好了本文到这里就要结束啦。

小结:

 总的来说,使用GRUB2修改root密码是确保系统安全和合规性的重要步骤。定期更改密码、妥善保管密码以及遵循最佳实践是维护系统安全的关键措施。

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值