前言
我们在使用Linux红帽的过程中可能会忘记root密码,很多小伙伴可能会重装红帽,接下来介绍两种省时省力又简便的方法。
修改GRUB密码
在重置密码之前我们需要注意两点,第一点是GRUB界面我们有时间限制,有些小伙伴可能还没反应过来就已经进入登录界面,所以我们需要修改相关的配置文件防止跳秒。第二点就是们需要先对GRUB进行加密处理,对GRUB进行加密的主要目的是为了增强其安全性。GRUB是一个多系统引导管理器,它负责在计算机启动时加载和传输控制到操作系统的内核。因此,GRUB是计算机启动过程中的关键组件,对其进行加密可以有效防止未经授权的访问和篡改。接下来要我们操作一下:
(1)设置主要环境
编辑/etc/default/grub以设置主要环境
vim /etc/default/grub
把第一行的数字改为-1,这样每次启动时不会跳秒,不至于手忙脚乱重启服务机
修改上面这个文件之后,必须执行grub2-mkconfig命令重新生成grub.cfg文件
ggrub2-mkconfig -o /boot/grub2/grub.cfg
再reboot重启系统即可生效。
(2)设置GRUB密码
我们是通过修改/etc/grub.d目录下的配置文件来设置、修改GRUB密码,/etc/grub.d目录中有很多数字开头的脚本文件,在此之前先介绍一下/etc/grub.d目录中的主要脚本文件。
00_header:这个脚本通常包含GRUB配置文件头部的一些通用设置和变量定义。
10_linux:这个脚本负责生成代表已安装Linux内核的启动项。它遍历/boot目录中的内核文件,并为每个内核创建一个启动菜单项。
20_memtest86+ 或 20_test:这些脚本与内存测试工具memtest86+有关,用于在GRUB菜单中添加一个内存测试选项。
30_os-prober:此脚本用于检测系统上安装的其他操作系统(如Windows或macOS),并为这些系统生成启动菜单项。
40_custom:这是一个用户可自定义的脚本,你可以在这里添加非标准的启动项或进行其他自定义配置。
41_custom 或其他更高数字:其他以数字开头的脚本文件可能由特定的软件包或用户添加,以执行特定的任务或添加特定的启动项。
接下来跟我一起来操作吧!
(1)编辑/etc/grub.d/00_header文件,在末尾添加以下内容保存文件:
cat << EOF
set superusers='admin' #用户名(随意设置,这里是登录进GURB界面的用户名)
password admin 123456 #密码
EOF
保存退出
(2)执行grub2-mkconfig命令重新生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
(3)重新启动系统,在GRUB开始界面中按下<e>键进入GRUB编辑模式,输入用户和密码。
以上设置的密码是明文的,当密码以明文形式存储时,任何能够访问存储位置的人都可以直接看到密码,这增加了密码被泄露的风险。而使用密文存储密码,即使攻击者能够访问存储位置,也无法直接看到密码的原始内容,因为密文是经过加密处理的,无法直接还原为明文。所以接下来进行密码加密。
(1)输入grub2-mkpasswd-pbkdf2生成加密的密码
grub2-mkpasswd-pbkdf2
Enter password输入设置的密码,红色框框后面的就是我们设置密码后生成的密文,把后面这一串密文复制到/etc/grub.d/00_header文件
复制的密文放到黄色箭头后面,然后保存退出
然后再执行grub2-mkconfig -o /boot/grub2/grub.d重新生成grub.d文件,即可。
启动虚拟机,进入GRUB界面,输入用户名以及你设置的密码就可进入下图所示的界面。
GRUB的密码设置加密成功。
Red Hat重置密码
方法一:
(1)启动系统进入GRUB界面,按下<e>键进入GURB编辑模式
(2)找到下图位置,空一格输入下面命令
rd.break console=tty0
或者
rd.break enforcing=0
(3)然后按下<Ctrl>+x启动,进到如下界面,回车即可
(4)执行以下命令改变系统目录临时挂载目录
mount -o remount,rw /
(5)执行以下命令改变系统目录为临时挂载目录
chroot /sysroot
(6)执行passwd修改root密码
passwd root
(7)在根目录下创建相关文件(用于重新标记SELinux环境值)
touch /.autorelabel
(8)执行exit退出chroot环境,再执行exit重启系统
然后稍等片刻,重启之后root密码就已经改成功了。
方法二:
如果使用rd.break不能进入系统启动,则可以向内核传递“init=/bin/bash”或“init=/bin/sh”参数,使用shell代替默认的daemon进程来重置root密码。
(1)启动系统进入GRUB2界面,光标移动到第二个有rescue标志的,按下<e>键进入GURB编辑模式。
(2)然后找到下图所示的框框位置,在后面添加 init=/bin/bash 或者 init=/bin/sh
(3)然后按下<Ctrl>+x启动,进到如下界面
如果你进入的界面是下图所示的样子,按回车即可。
(4)执行以下命令以可写方式重新挂载根目录
mount -o remount,rw /
(5)与上述方法一样,执行命令passwd修改root密码
passwd root
(6)与上述方法一样,如果系统启动了SELinux,必须执行以下命令,否则无法正常启动系统
touch /.autorelabel
(7)输入下面的命令重启系统
exec /sbin/init
或者
exec /sbin/reboot
重启之后,我们的root密码就重置成功了,有什么不懂的地方可以留言一起讨论,如果对你有帮助的话,给我点个赞吧。
标签:界面,GRUB,grub,grub2,密码,Linux,root From: https://blog.csdn.net/cx2004811/article/details/137258200