目录
PS:本人用的RedHat9.0版本,如有不对的地方,随时欢迎大家指出。
1、原理通过GRUB来实现的
首先,GRUB(GRand Unified Bootloader)是一个多操作系统启动程序,它允许用户在计算机启动时选择希望运行的操作系统。在Linux系统中,GRUB通常被配置为默认的启动加载器。
当虚拟机启动时,BIOS会加载并运行GRUB。此时,用户可以按下特定的按键(通常是“e”)进入GRUB的编辑模式。在编辑模式中,用户可以修改GRUB的配置,包括启动参数和内核参数等。
为了修改root密码,用户需要利用GRUB的编辑模式来修改启动参数,使得系统在启动时进入特定的维护模式或救援模式。具体来说,用户可以在GRUB配置中添加特定的内核参数,如“rd.break”或“init=/bin/bash”,这些参数会中断正常的启动过程,并允许用户以root权限访问系统。
一旦系统以这种方式启动,用户就可以执行命令来重置root密码。这通常涉及到重新挂载根文件系统为可写模式,然后使用“passwd”命令来更改root密码。
需要注意的是,这种方法需要一定的技术知识和经验,因为错误的操作可能会导致系统无法启动或数据丢失。此外,为了安全起见,建议在执行此类操作之前备份重要数据。
另外,还需要注意的是,任何人不需密码都能进入GRUB编辑模式,这具有相当大的安全隐患。因此,为了防止未经授权的访问和修改,可以设置GRUB口令来保护GRUB的配置和参数。
总的来说,虚拟机中通过GRUB修改root密码的原理是利用GRUB的启动引导机制和Linux系统的密码管理来实现在系统启动时以root权限访问系统并重置密码的目的。
2、方法一
先打开自己的虚拟机,界面是这样的
我们需要选择第二个,然后再按E
但有人会发现这个界面停留时间很短,有点反应不过来,所以我们要修改这个界面停留的时间,我们远程连接一下 ,编辑/etc/default/grub文件,打开的样子是这样的我们需要将5改成-1,改成-1的话,每次启动时需要手动确认才可以。这样启动项不会自动进去了,然后选择第二个选项,然后按E,进入GRUB编辑模式 在倒数第二行swap后面,rhgb quiet前面添加“rd.break”,然后按<Ctrl+x>组合键启动系统。然后先按Enter回车键,然后输入mount -o remount,rw /sysroot重新挂载文件系统, 在输入chroot /sysroot改变系统目录为临时挂载目录,在输入passwd root 修改root密码,在输入touch /.autorelabel在根目录创建相关文件。 然后输入exit退出chroot环境,然后在输入reboot重启系统
重启之后root密码就改掉了。
3、方法二
在进入GRUB编辑模式里,将rhgb quiet删除,然后添加“init=/bin/bash”然后按<Ctrl+x>组合键进入然后输入mount -o remount,rw / ,在输入passwd root 修改root密码,在输入touch /.autorelabel,然后在输入exec /sbin/init 重启系统。 等待重启就好了
4、给GRUB编辑模式添加密码
这种改root密码是不是很简单呢?假如你去修改别人root密码时,被别人偷家,将自己的root密码改了,是不是很难受,所以楼主这里有方法给GRUB编辑模式加密。首先进行远程连接,输入grub2-mkpasswd-pbkdf2生成加密的密码口令是等下进入GRUB编辑模式的密码,复制后面grub后的密码,然后编辑文件/etc/grub.d/00_header, 在最末输入(ps:zeng是用户名,各位填自己的即可)
cat << EOF
set superusers="zeng"
password_pbkdf2 zeng grub.pbkdf2.sha512.10000.E59D47DA2ABF3822608EC6BBF8FEF69D9CB353400451DC25540257D04DAE78FACE57BE5DC121343DF270B5EF8A2CE7D446806AE477DFD5591DD6981E2C3966EF.2135096EF3554DF88F7EF3BEF7C625C0B83129029C66578F2BE3870F63BEE60FBAD7991C49B8AB474F6F8BE941AA3E3B8F8679664048BD3675AE4715C9B5D26B
EOF ,然后保存退出 最后执行grub2-mkconfig重新生成文件。然后再去虚拟机进入GRUB编辑界面的样子是这样的
输入自己的用户名和口令就可以进去了这样可以防止被”偷家了“ ,如有不足的地方欢迎大家指出