在日常的服务器运维工作中,遇到 CentOS 系统 root 密码遗忘或丢失的情况并不罕见,虽然这种情况可能令人一时无措,但通过正确的操作步骤,完全可以高效且安全地恢复系统访问权限,以下将详细介绍在 CentOS 7 及 CentOS 8 环境下重置 root 密码的具体方法。
重要前提: 进行以下操作需具备物理服务器接触权限或虚拟平台的控制台访问权限,如果系统处于云服务器环境,部分操作可能需通过云服务商提供的控制台界面完成。

CentOS 7 系统 root 密码重置步骤
重启系统并中断启动过程
重启 CentOS 7 服务器,在 GRUB 启动菜单出现时,快速按下键盘上的e键,进入编辑模式。修改启动参数
在编辑界面中,找到以linux16或linuxefi开头的行,将光标移动至该行末尾,删除原有参数rhgb quiet,并添加以下内容:rw init=/sysroot/bin/sh这一操作的意义在于将系统以可读写方式挂载,并将初始进程设置为 Shell 环境。
进入救援模式
按下Ctrl + X或F10启动系统,此时会直接进入命令行环境,系统根分区实际上挂载在/sysroot下。切换根环境并修改密码
依次执行以下命令:chroot /sysroot passwd root
根据提示输入两次新密码,如果系统启用了 SELinux,还需执行以下命令创建标记文件:

touch /.autorelabel
这一步是为了保证 SELinux 上下文在下次启动时自动重置,避免权限异常。
完成重启
退出 chroot 环境并重启系统:exit reboot -f
系统重启后,新密码即可生效。
CentOS 8 系统 root 密码重置步骤
CentOS 8 采用了较新的 GRUB 引导机制,操作略有差异。
进入启动编辑模式
重启系统,在 GRUB 菜单界面按e键进入编辑模式。调整启动参数
找到linux开头的行,在行末追加以下内容:
rd.break enforcing=0此处
enforcing=0用于临时关闭 SELinux,便于后续操作。进入紧急模式
按Ctrl + X启动,系统会进入紧急模式并暂停启动过程。重新挂载并重置密码
执行以下命令:mount -o remount,rw /sysroot chroot /sysroot passwd root
输入新密码后,为确保 SELinux 安全上下文正确,必须执行:
load_policy -i touch /.autorelabel exit reboot
此处的
load_policy -i用于加载 SELinux 策略,确保安全标签正确重建。
操作注意事项与安全建议
- 在执行密码重置操作前,务必确认是否有其他用户正在连接系统,避免突然重启造成数据丢失。
- 如果系统使用了全盘加密或特殊的分区方案,上述操作可能需要进行额外调整。
- 完成密码重置后,建议立即检查系统日志,确认无异常登录行为或安全风险。
- 对于生产服务器,强烈建议定期备份并采用密钥认证等更安全的登录方式,减少对密码依赖。
密码是系统安全的第一道防线,虽然重置 root 密码在技术层面并不复杂,但从运维管理角度,更应建立规范的口令管理策略和应急访问机制,避免频繁依赖强制重置手段,良好的权限管理和操作审计,才是保障系统长期稳定运行的根本所在。
