一、操作步骤
1、重启系统:需要重启你的CentOS 7系统,在系统启动过程中,当看到内核选择界面时,按下e
键进入编辑模式。
2、修改启动参数:在编辑模式下,找到以linux16
或linuxefi
开头的行(具体取决于你的系统配置),这些行控制内核加载选项,使用方向键移动到该行的末尾,按End
键将光标移到行尾,添加或修改以下参数:

将默认的启动参数修改为ro
(只读模式),并禁用SELinux的强制执行,以及启动到紧急模式,修改后的行可能如下所示:
- rb.break enforcing=0
enforcing=0
参数用于禁用SELinux的强制执行,而rb.break
则指示系统引导到单用户/救援模式。
3、引导系统:修改完成后,按Ctrl+X
组合键重新引导系统,这将以单用户模式或救援模式启动CentOS 7。
4、挂载根文件系统:系统以单用户模式启动后,执行以下命令重新挂载根文件系统为可读写状态:
- mount o remount,rw /sysroot
这一步是必要的,因为我们需要修改根文件系统中的密码文件。
5、切换到真实根目录:切换到系统的real root目录:

- chroot /sysroot
这允许我们对实际的根文件系统进行更改。
6、修改密码:使用passwd
命令修改root用户的密码,系统将提示你输入新密码并确认:
- passwd root
请确保设置一个强密码,包含大小写字母、数字和特殊字符的组合。
7、更新SELinux上下文:由于我们修改了密码,可能会导致SELinux上下文错误,为了解决这个问题,执行以下命令以确保下次启动时进行正确的标记:
- touch /.autorelabel
这将在系统重启时触发SELinux文件系统的重新标记。
8、重启系统:退出chroot环境并重启系统:

- exit
- reboot
系统重启后,你应该能够使用新设置的root密码登录。
二、FAQs
Q1:如果在修改启动参数时没有看到enforcing=0
这样的参数怎么办?
A1:如果你的系统没有明确设置SELinux的模式为enforcing
,那么你可能不需要手动添加enforcing=0
参数,为了确保SELinux不会影响密码修改过程,建议添加该参数作为预防措施。
Q2:如果修改完密码后重启系统仍然无法用新密码登录怎么办?
A2:这种情况可能是因为系统信息没有完全更新或者SELinux策略没有正确应用,尝试再次执行步骤6中的touch /.autorelabel
命令,然后重启系统,如果问题依旧存在,可能需要检查SELinux的配置文件和日志以获取更多信息。