🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🔑 标准解决方案:GRUB 引导参数注入(rd.break 法)

📋 操作步骤(全程需控制台交互)

⚠️ 关键注意事项(避免变砖!)

💡 备用方案(按场景选择)

🔒 安全加固建议(重置后必做)

❌ 绝对禁止行为


当 CentOS 7 服务器 root 密码遗忘时,必须通过物理控制台、KVM 或云平台 VNC(如阿里云“远程连接”、腾讯云“VNC”)操作。以下是经生产验证的安全重置方案(推荐 rd.break 法):


🔑 标准解决方案:GRUB 引导参数注入(rd.break 法)

📋 操作步骤(全程需控制台交互)

  1. 重启服务器

    • 云服务器:在控制台点击“重启”,立即进入 VNC 连接(关键!错过 GRUB 会失败)
    • 物理机:手动重启并紧盯屏幕
  2. 中断 GRUB 启动

    • 当出现 "CentOS Linux (3.x.x-xxx.el7.x86_64)" 菜单时 → 快速按 ↑/↓ 方向键暂停倒计时
    • 选中启动项 → 按 e 进入编辑模式
  3. 修改内核参数

    • 找到以 linux16 开头的行(约第 15 行)
    • 定位到行尾 → 将 ro 替换为 rw init=/sysroot/bin/sh
      或更稳妥方案:在 quiet 后添加空格 + rd.break(推荐!)
    • ✅ 正确示例:
      ... quiet rd.break
      (注意:不要删除原有参数,仅追加)
  4. 启动紧急模式

    • Ctrl + XF10 启动 → 进入 switch_root:/# shell
  5. 重置密码

    mount -o remount,rw /sysroot          # 重新挂载根分区为读写
    chroot /sysroot                       # 切换至原系统环境
    passwd root                           # 输入新密码(终端无回显,正常输入两次)
    # 如需重置普通用户:passwd username
    touch /.autorelabel                   # ⚠️ 关键!创建此文件触发 SELinux 重标记
    exit                                  # 退出 chroot
    exit                                  # 重启系统(自动执行 init)
    
  6. 等待系统恢复

    • 首次重启会显示 Relabeling...(约 2-10 分钟,切勿中断电源!
    • 完成后自动进入登录界面 → 用新密码登录

⚠️ 关键注意事项(避免变砖!)

风险点 正确操作 错误示例
错过 GRUB 菜单 云平台:重启后立即点 VNC;物理机:紧盯屏幕快速操作 等待系统启动后再操作 → 失败
SELinux 未修复 必须执行 touch /.autorelabel 跳过此步 → 系统卡在启动界面
密码输入无回显 正常输入两次 → 按回车(终端不显示* 以为失效反复输入 → 密码错误
云平台特殊限制 阿里云/腾讯云:优先使用控制台 “重置密码”功能(需关机) 盲目操作 GRUB 导致服务中断
全盘加密 (LUKS) 此方法无效!需先输入加密密码解密 强行操作 → 无法挂载系统

💡 备用方案(按场景选择)

场景 方案 说明
云服务器(推荐首选) 控制台“重置密码” 阿里云/华为云等:关机 → 重置密码 → 开机(无需操作 GRUB,最安全)
支持救援模式 云平台“救援模式” 挂载原系统盘 → chroot 重置密码(如 AWS EC2 Rescue)
物理机/Live CD 启动 Live USB → 挂载分区 → chroot 重置 适用于无 GRUB 访问权限的场景
仅普通用户密码 单用户模式下直接 passwd username 无需 touch /.autorelabel(但建议保留)

🔒 安全加固建议(重置后必做)

# 1. 检查异常登录
last -a | head -20
grep "Failed password" /var/log/secure

# 2. 启用密钥登录(禁用密码)
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd

# 3. 配置 Fail2ban 防暴力破解
yum install -y fail2ban && systemctl enable --now fail2ban

# 4. 记录操作审计
echo "密码于 $(date) 由 $(whoami) 重置" >> /var/log/password_reset.log

❌ 绝对禁止行为

  • 不要删除 /etc/shadow 或清空密码字段(passwd -d root)→ 高危漏洞!
  • 不要在生产环境跳过 .autorelabel(SELinux 强制模式下必现启动失败)
  • 不要通过非官方渠道下载“密码破解工具”(含后门风险)

💡 终极提示

  1. 云服务器用户 优先使用控制台“重置密码”功能(90% 场景更简单安全)
  2. 操作前务必备份重要数据(虽不修改数据,但防意外)
  3. 建议将此流程写入运维 SOP,并定期演练
  4. 重置后立即检查系统完整性(rpm -Va

按此流程操作,99% 的 CentOS 7 密码遗忘问题可安全解决。如遇具体报错(如 mount: /sysroot not found),请提供截图进一步分析!

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐