CentOS 系统密码重置完整流程

一、进入单用户模式或紧急模式

  1. 重启系统并进入 GRUB 菜单
    重启服务器,在启动界面出现时按下 Esc 或 Shift 键,进入 GRUB 引导菜单。若未显示菜单,可尝试多次按键。
  2. 编辑启动参数
    选择默认的内核启动项(通常为第一项),按下 e 键进入编辑模式。根据 CentOS 版本修改参数:
    • CentOS 7:找到以 linux16 开头的行,将 ro 改为 rw init=/sysroot/bin/sh1
    • CentOS 8/9:找到以 linux 开头的行,在行末添加 rd.break 参数。
  3. 启动进入维护模式
    按下 Ctrl+X 或 F10 启动修改后的内核。系统将进入单用户模式(CentOS 7)或紧急模式(CentOS 8/9)。

二、重置密码

  1. 挂载根文件系统为可读写
    在紧急模式下(CentOS 8/9),执行以下命令:
    mount -o remount,rw /sysroot
    
    CentOS 7 用户若已通过 rw init=/sysroot/bin/sh 参数启动,可跳过此步骤。
  2. 切换到真实根目录
    执行以下命令进入系统根目录:
    chroot /sysroot
    
  3. 修改 root 密码
    使用 passwd 命令重置密码:
    passwd root
    
    按提示输入新密码(需符合复杂度要求,如至少 8 位、包含大小写字母和数字等)。若提示乱码,可先执行 LANG=en 切换语言。
  4. 更新 SELinux 上下文
    执行以下命令确保 SELinux 策略生效:
    touch /.autorelabel
    
    此步骤在 SELinux 处于 enforcing 模式时必须执行,否则可能导致登录失败。

三、退出并重启系统

  1. 退出 chroot 环境
    执行 exit 命令返回紧急模式或单用户模式。
  2. 重启系统
    输入以下命令重启:
    reboot
    

四、验证新密码

系统重启后,使用新密码登录。若无法登录:
  • 检查 SELinux 状态(getenforce),若为 enforcing,需重新执行 touch /.autorelabel 并重启。
  • 确认密码复杂度是否符合策略(如 /etc/security/pwquality.conf 中的配置)。

五、其他注意事项

  1. 物理服务器与云服务器差异
    • 物理服务器:需物理访问或通过 KVM 工具操作。
    • 云服务器:部分云服务商(如阿里云、AWS)提供远程密码重置功能,可通过控制台直接操作。
  2. LVM 或加密文件系统
    若系统使用 LVM 或加密卷,需先激活卷组(vgchange -ay)或解锁加密分区,再执行后续步骤。
  3. GRUB 加密保护
    若系统启用了 GRUB 密码,需先输入密码才能编辑启动项。可通过 grub2-setpassword 命令设置或重置。
  4. 救援模式备用方案
    若单用户模式无法进入,可通过 CentOS 安装光盘或 U 盘启动,选择 Rescue a CentOS system 进入救援模式,挂载系统分区后重置密码。

六、密码安全建议

  • 使用强密码(包含大小写字母、数字、特殊字符,长度≥8 位)。
  • 定期更换密码,避免重复使用旧密码。
  • 限制 root 用户远程登录,通过普通用户使用 sudo 提权。
阅读剩余
THE END