CentOS 7忘记密码重置密码方式
主包今天学习Linux时打开VM忘记了自己的密码(其中一台的,很久没有用到这台虚拟机了所以把密码给忘记了),老师教了一个能够不登录账号就能重置我的密码登录的方法。这样就能够不重新部署和安装了。
在这个方法中,核心原理是通过修改系统启动参数进入紧急模式,再重置root密码并修复SELinux标签,全程无需原密码。以下主包将分布拆解详细操作。
一、进入系统启动菜单
1、重启Cent OS7服务器,开机时会出现如下启动菜单:

2、接下来用上下箭头选中第一个启动项(默认启动的系统内核,即CentOS Linux(3.10.0-1160.el7.x86_64)7(Core)。摁下e键,进入启动参数编辑界面。
二、修改启动参数,添加紧急模式标识
在编辑界面中,找到包含LANG=zh_CN.UTF-8的一行(核心参数行),在后面添加空格后追加re rd.break,后摁下ctrl+x,进入紧急救援模式。

参数说明:
1、rw:让根分区以“可读写”模式挂载(默认启动是只读ro,无法修改密码);
2、rd.break:中断系统启动流程,进入紧急救援模式;
三、进入系统根目录(chroot切换)
启动后进入紧急模式命令行,系统提示符为 switch_root:/#

1、输入chroot/sysroot,切换到系统真实根目录(/sysroot是紧急模式下系统根分区的临时挂载点)。
2、执行后,命令行提示符会变成sh-4.2#,表示已成功切换到系统真实根环境,可操作系统配置。
四、重置root密码
1、输入 echo 123456 | passwd --stdin root
解读:
echo 123456:输出新密码
| passwd --stdin root:通过管道命令将密码传递给passwd命令,无需手动输入两次密码。
2、执行后若成功提示 passwd: all authentication tokens updated successfully,表示密码重置成功。
五、修复SELinux标签
1、CnetOS 7默认启用SELinux,修改密码后会导致SELinux安全标签不一致,需要手动生成自动重新标签的标记文件。
输入命令:touch /.autorelabel
这能够使系统重启时检测到.autorelabel文件,自动重新生成所有文件的SELinux标签,避免因标签错误导致系统无法登录或服务异常。
2、同步磁盘缓存,确保修改生效:键入sync
其能将内存中的修改写入磁盘,防止因为断电/重启导致配置丢失。
六、推出并重启系统
1、输入exit推出chroot环境,回到紧急模式初始提示符switch_root:#:
2、再次输入reboot重启服务器。

重启后,使用root账户+新密码登录,就可以成功进入系统。
主包使用的方法是 CentOS 7 系统无原密码重置 root 密码的标准方案,核心是通过rd.break进入紧急模式,以读写模式挂载根分区,重置密码后修复 SELinux 标签。操作全程无需复杂工具,只要能访问服务器控制台,即可快速完成密码 “破解”(重置)。