##前言
在管理Linux服务器时,忘记root密码是一件棘手的事情,但幸运的是,CentOS提供了救援模式来帮助我们重置root密码。本文将以CentOS 7至9为例,详细介绍如何通过GRUB引导菜单进入紧急模式(或称为救援模式),进而恢复root用户的密码。请注意,操作前请确保您有物理或远程访问服务器的权限,并且了解此操作对系统的影响。
Linux恢复root用户密码
当用户尤其是root用户忘记密码从而无法登陆Linux操作系统,可以通过grub方式更改密码。
1.重启虚拟机,重启后按e键进入grub界面,进入救援模式进行配置,通常选择第一个选项,九版本选择名称中带有rescue一词的条目。
2.找到linux开头的这一行,在该行的尾部写入rd.break,然后执行ctrl+x进行入救援模式
3.在救援模式下输入命令:
switch_root:/# mount -o rw,remount /sysroot #以读写权限重新挂载/sysroot文件系统
switch_root:/# chroot /sysroot #切换改变/sysroot的存放位置
注意:此时系统尚未启动selinux,所创建的任何文件都没有selinux context。因此,当passwd设置密码时,/etc/shadow文化不会获得selinux context。
4.更改root用户密码:
sh-5.1# passwd root
5.修改selinux确保密码修改成功:
sh-5.1# touch /.autorelabel
sh-5.1# sync #内存缓冲区中的数据立即写入磁盘
说明:.autorelabel是一个隐藏文件,目的是为了重新标记selinux文件系统,由于passwd命令无法重新创建不带selinux上下文的/etc/shadow文件。
6.两次exit退出:
sh-5.1# exit #退回上级目录
switch_root:/# exit #退出chroot,此时触发selinux策略,等待一段时间后重启即可