在日常的Linux系统运维工作中,特别是管理如Red Hat Enterprise Linux(RHEL)这样的企业级系统时,我们可能会面临忘记了root密码的尴尬情境。本文将详细指导如何在RHEL 7、8、9版本下重置root账户的密码,帮助您在关键时刻迅速恢复系统正常运行。
一、先决条件
在我们开始之前,请确保您拥有如下内容:
1.操作系统和应用已经备份。
2.操作系统可以重启。
二、解决方案
当您忘记了RHEL系统的root密码时,可以通过以下步骤来重置它,从而恢复对系统的访问权限。请注意,这些步骤适用于RHEL 7、8和9版本,但某些细节可能因版本而有所差异。
1.重启系统并进入GRUB菜单
重启您的RHEL服务器。在启动过程中,迅速按下“Tab”键或任意键来中断GRUB的倒计时,以便您可以看到GRUB菜单。
2.编辑GRUB启动项
在GRUB菜单中将光标移动到需要引导的条目,按e编辑并将光标移动到内核命令行(以linux16 、 linuxefi或linux开头的行)行的末尾。
(1)示例:RHEL7操作系统内核命令行
linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=480d378c-1579-4ecf-9689-3b25dbd977c5 ro crashkernel=auto rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rd.lvm.lv=rhel/root rhgb quiet
(2)示例:RHEL8/RHEL9操作系统内核命令行
linux ($root)/vmlinuz-4.18.0-372.el8.x86_64 root=UUID=/dev/mapper/vg_rhel-root ro crashkernel=auto resume=/dev/mapper/vg_rhel-swap rd.lvm.lv=vg_rhel-root rd.lvm.lv=vg_rhel-swap rhgb quiet
(3)修改内核命令行
将init=/bin/bash命令附加到内核命令行的末尾
linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=480d378c-1579-4ecf-9689-3b25dbd977c5 ro crashkernel=auto rd.lvm.lv=rhel_dhcp-192-83/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rd.lvm.lv=rhel_dhcp-192-83/root rhgb quiet init=/bin/bash
3.启动到单用户模式
编辑完成后,按”Ctrl+X”系统将以单用户模式启动,并直接进入bash shell。启动后会以只读方式挂载实际系统的root文件系统。
4.重新挂载根文件系统为读写模式
bash-x.y# mount -o remount,rw /
5.重置root密码
使用passwd root命令来设置新的root密码。系统会提示您输入并确认新密码。
bash-x.y# passwd root
6.重新标记SELinux
如果您的系统启用了SELinux,请运行touch /.autorelabel来标记SELinux在下次启动时重新标记文件系统。这一步对于确保系统安全至关重要。
bash-x.y# touch /.autorelabel
7.退出并重启系统
bash-x.y# exec /sbin/init
三、总结
在执行这些步骤时,请确保您有足够的权限来重置root密码,并且了解这些操作可能带来的潜在风险。此外,重置密码后,请务必记录新密码,并将其保存在安全的地方,以防将来再次遗忘。
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/how-to-reset-root-password-in-rhel-7-8-9.html