刚开始接触Linux的人,忘记了root密码会比较不知所措,想找回自己的root密码,但是又不知道方法。其实,只需要简单的几步就可以重置自己的root密码了
模式方法介绍
系统启动进入特殊模式
如果引导装载程序能正常工作,能执行初始化程序, 可以考虑进入救援(rescue) 模式、紧急救援(emergency) 模式或 Shell 引导界面, 进行常规的故障排除。救援模式适合服务的故障排除, 紧急救援适合文件系统的修复。
1. 进入救援(rescue) 模式修复系统
救援模式类似于之前的单用户模式。进入该模式之后,系统会完成基本的初始化,需要输入root密码登录。这种模式不启动服务,但装载文件系统,适用于某服务设置故障的修补。
在当前正常运行的系统中, 执行 systemctl isolate rescue. target 或 systemctl rescue命令可切换到救援模式。但这种情况不常用,通常是遇到启动故障时才进入救援模式。具体方法是动态修改GRUB 引导参数。
(1) 启动系统进入GRUB2 界面后, 按下<e>键进入 GRUB 编辑模式。
(2)按向下箭头找到以linux16开头的那一行,在行尾先输入一个空格,再输入s或single,也可以是 systemd. unit=rescure. target。
(3) 按<Ctrl>+<x>组合键启动系统, 进入rescue模式。
(4) 输入管理员密码登录,然后进行排故操作。
2. 进入紧急救援(emergency) 模式修复系统
紧急救援模式也需要root密码登录,没有执行系统初始化,完成GRUB 启动,以只读方式挂载根目录, 不装载/etc/fstab, 非常适合文件系统故障处理。
在当前正常运行的系统中, 执行systemctl isolate emergency. target或 systemctl emergency命令可切换到救援模式。这种情况也不常用,通常是遇到启动故障时才进入紧急救援模式。具体方法是动态修改 GRUB 引导参数。与上例救援模式相似,需要在以 linux16 开头的那一行行尾先输入一个空格, 再输入emergency 或者 systemd. unit=emergency. target。
3. 进入 Shell引导界面
与上述两种方式相比,直接进入 Shell引导界面不做任何初始化, 只是提供一个Shell 界面而已。具体方法是动态修改GRUB 引导参数。与救援模式相似, 需要在以 linux16 开头的那一行中使用“init=/bin/bash”或“init=/bin/sh”替换“rhgb quiet”。按<Ctrl>+<x>组合键启动系统, 进入这种引导界面。“rhgb quiet”表示图形化界面启动, 这里会用 Shell替代默认的daemon 进程。
这种模式不需要 root密码而拥有 root权限
所以我们这里使用第三种方式修改root的密码
一、修改root密码
1、打开虚拟机(这里使用的虚拟机为Red hat 9)出现如下界面按e键进入编辑(只有5秒)
2、使用“init=/bin/bash”或“init=/bin/sh”替换“rhgb quiet”
3、按<Ctrl>+<x>组合键启动系统, 进入这种引导界面。
3、执行以下命令以可写方式重新挂载根目录: mount -o remount, rw /
4、执行以下命令修改root密码: passwd root

5、如果系统启动了SELinux,必须执行以下命令,否则将无法正常启动系统touch/.autorelabel(4)执行exec /sbin/init命令启动系统,或者执行( exec/sbin/reboot命令重启)
6、进入图形界面打开终端输入 su root如果能进入则修改密码成功
二、修改GRUB启动项等待时间
因为上面的步骤一进入编辑模式的时间太短暂,可能导致我们来不及进入编辑模式,就需要一直重开。这里我们可以编辑它的环境来修改grub的启动时间。
1、打开编辑/etc/default/grub文件
输入vi //etc/default/grub 然后回车
2、将TIMEOUT后面数子改成-1(时间无穷大)保存并退出
这样我们下次进入grub编辑模式的时候或者进入系统的时候将不会自动跳转,需要我们按回车。
三、将GRUB加密增加虚拟机安全性
由上面得知任何人不需要密码就能登录GRUB模式,具有相当大的安全隐患,为此可以设置GRUB口令,只有拥有口令的用户才能修改GRUB参数,方法是修改配置文件、设置密码,防止非法操作。
1、编辑 /etc/grub.d/00_header文件,在末尾添加内容后保存该文件
cat << EOF
set superusers='admin'
password admin 1234
EOF
(将admin改成你的用户名)
2、执行 grub2-mkconfig命令重新生成grub.cfg文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
3、重启系统,在GRUB开始界面按 e ,进入编辑模式,输入用户名和密码
4、GRUB密码加密
以上设置密码是明文的,grub可以对此密码加密,具体方法是使用工具grub2-mkpasswd-pbkdf2生成的加密密码:
1、输入 grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
2、将/etc/grub.d/00_head文件的password语句中密码更换成上述grub.pbkdf2.sha开头的密文
3、执行grub2-mkconfig命令重新生成grub.cfg文件
GRUB的作用
GRUB(GRand Unified Bootloader)是一个多操作系统启动程序。它的主要作用是在计算机启动时,为用户提供选择启动哪个操作系统的界面。同时,GRUB也管理内核和其它模块的加载。以下是GRUB的一些详细功能:
- 多操作系统支持:GRUB允许用户在一个物理硬盘上安装多个操作系统,并在启动时选择想要运行的操作系统。这为用户提供了极大的灵活性,使得他们可以在同一台机器上运行不同的操作系统,如Linux、Windows等。
- 模块化设计:GRUB采用了模块化设计,使得其核心代码可以保持相对较小,而额外的功能则可以通过加载额外的模块来实现。这种设计不仅提高了GRUB的灵活性,也使其更容易进行维护和扩展。
- 文件系统支持:GRUB支持多种文件系统,如ext2、ext3、ext4、FAT、NTFS等。这使得GRUB可以在不同的文件系统中查找和加载操作系统和内核。
- 命令行接口:GRUB提供了一个强大的命令行接口,允许用户在启动过程中进行各种操作,如加载模块、设置参数、运行脚本等。这为高级用户提供了极大的灵活性,使得他们可以根据自己的需求定制启动过程。
- 安全性:GRUB还提供了一些安全特性,如密码保护,以防止未经授权的用户修改启动配置或启动其他操作系统。
GRUB的优点
GRUB(GRand Unified Bootloader)是一个多操作系统启动程序。它的主要作用是在计算机启动时,为用户提供选择启动哪个操作系统的界面。同时,GRUB也管理内核和其它模块的加载。以下是GRUB的一些详细功能:
- 多操作系统支持:GRUB允许用户在一个物理硬盘上安装多个操作系统,并在启动时选择想要运行的操作系统。这为用户提供了极大的灵活性,使得他们可以在同一台机器上运行不同的操作系统,如Linux、Windows等。
- 模块化设计:GRUB采用了模块化设计,使得其核心代码可以保持相对较小,而额外的功能则可以通过加载额外的模块来实现。这种设计不仅提高了GRUB的灵活性,也使其更容易进行维护和扩展。
- 文件系统支持:GRUB支持多种文件系统,如ext2、ext3、ext4、FAT、NTFS等。这使得GRUB可以在不同的文件系统中查找和加载操作系统和内核。
- 命令行接口:GRUB提供了一个强大的命令行接口,允许用户在启动过程中进行各种操作,如加载模块、设置参数、运行脚本等。这为高级用户提供了极大的灵活性,使得他们可以根据自己的需求定制启动过程。
- 安全性:GRUB还提供了一些安全特性,如密码保护,以防止未经授权的用户修改启动配置或启动其他操作系统。
总的来说,GRUB是一个功能强大、灵活且安全的启动加载程序,它为用户提供了在多操作系统环境中选择和启动操作系统的能力,同时也为高级用户提供了定制启动过程的接口。
GRUB的缺点
尽管GRUB是一个功能强大且灵活的启动加载程序,但它也有一些潜在的缺点:
- 最大支持的硬盘容量限制:GRUB有一个显著的限制,即它最大只能支持1TB的硬盘。在处理大于这个容量的硬盘时,GRUB可能会遇到问题,这可能限制了它在处理大容量存储设备时的适用性。
- 复杂的配置过程:尽管GRUB提供了灵活的配置选项,但这也使得配置过程相对复杂。对于不熟悉GRUB的用户来说,正确配置GRUB可能需要一些学习和实践。错误的配置可能导致系统无法正常启动。
- 对硬件的依赖性:GRUB在某些硬件平台上可能存在兼容性问题。特别是在某些较旧的硬件或非主流的硬件架构上,GRUB可能无法正常工作。这可能需要用户寻找特定的解决方案或选择其他启动加载程序。
- 启动速度:在某些情况下,GRUB的启动速度可能不如其他启动加载程序快。这可能是因为GRUB在启动时需要加载多个模块和进行额外的检查。对于追求极致启动速度的用户来说,这可能是一个考虑因素。
- 安全性问题:尽管GRUB提供了密码保护功能,但其安全性可能仍然存在一定的风险。例如,如果攻击者能够物理访问计算机并修改GRUB的配置文件或相关文件,他们可能能够绕过密码保护并启动其他操作系统或执行恶意代码。
需要注意的是,这些缺点并不适用于所有情况,而是根据具体的使用环境和需求而有所不同。在选择使用GRUB时,用户应该根据自己的实际需求和硬件环境进行评估和决策。同时,随着技术的不断发展,GRUB也在不断更新和改进,一些早期的缺点可能已经在后续版本中得到了解决。