CentOS 7忘记密码的解决方法可以通过进入单用户模式或救援模式来进行重置,以下是详细的步骤和注意事项:
方法一:通过单用户模式重置密码

1、重启系统:在开机过程中,当看到GRUB2引导画面时,按下e
键进入编辑模式。
2、修改启动参数:使用方向键选中以linux16
或linuxefi
开头的行,这些行控制内核加载选项,按End
键移动到行的末尾,将默认的启动参数修改为rw init=/sysroot/bin/sh
(对于UEFI系统,可能是init=/bin/bash
)。
3、引导系统:修改完毕后,按Ctrl+X
组合键重新引导系统。
4、挂载文件系统:系统将以单用户模式启动,在命令行中输入以下命令重新挂载文件系统为可写状态:
```
mount o remount,rw /sysroot

```
然后切换到系统的real root目录:
```
chroot /sysroot
```
5、重置root密码:使用passwd
命令重置root密码。

```
passwd
```
根据提示输入新密码并确认。
6、处理SELinux上下文(如果开启):由于修改密码可能会导致SELinux上下文错误,执行以下命令以确保下次启动时进行正确的标记:
```
touch /.autorelabel
```
7、重启系统:退出chroot环境并重启系统:
```
exit
reboot
```
系统重启后,使用新设置的root密码进行登录验证。
方法二:通过救援模式重置密码(可选步骤)
如果上述方法不适用或您希望使用另一种方法,可以尝试以下步骤:
1、进入救援模式:在GRUB2引导画面中,按下e
键进入编辑模式,找到以linux16
或linuxefi
开头的行,删除最后的rhgb quiet
参数(在UEFI系统中是linuxefi
),并在行尾添加rd.break enforcing=0
。
2、引导系统:修改完毕后,按Ctrl+X
组合键重新引导系统,这将使系统进入紧急模式或救援模式。
3、挂载文件系统:在命令行中输入以下命令重新挂载文件系统为可写状态:
```
mount o remount,rw /sysroot
```
然后切换到系统的real root目录:
```
chroot /sysroot
```
4、重置root密码:与方法一相同,使用passwd
命令重置root密码。
5、处理SELinux上下文(如果开启):同上,执行touch /.autorelabel
命令。
6、重启系统:退出chroot环境并重启系统。
注意事项
确保在重置密码时选择一个强密码,避免使用过于简单或过短的密码。
如果系统启用了SELinux,请确保在重置密码后执行相应的命令来处理SELinux上下文问题。
在完成密码重置后,建议重新启动系统以确保更改生效。
FAQs
问题1:如果忘记了普通用户的密码而不仅仅是root用户怎么办?
答:如果忘记了普通用户的密码,您可以按照上述步骤先重置root用户的密码,然后使用新设置的root密码登录系统,再为其他用户重置密码,具体命令为:passwd 用户名
(将“用户名”替换为您要重置密码的用户的实际名称)。
问题2:为什么有时在重置密码时会出现中文乱码?
答:在中文环境下,重置密码时可能会出现中文乱码的情况,这通常是由于字符编码问题导致的,为了避免这种情况,您可以尝试将终端的字符编码设置为UTF8(通过执行export LANG=en_US.UTF8
命令),或者在输入密码时注意不要包含可能导致乱码的特殊字符,如果仍然出现乱码,可以忽略它并继续完成密码重置过程,因为乱码通常不会影响密码的实际设置。