×

CentOS 7~8 重置Linux root 密码的两种通用方法(运维必备)

hqy hqy 发表于2025-11-23 23:04:08 浏览3 评论0

抢沙发发表评论

在运维工作中,忘记 root 密码并不是罕见的事情。幸运的是,在 CentOS 7 和 CentOS 8 中,都可以通过 GRUB 引导参数进入维护模式,安全地重置 root 密码。

本文整理两种最常用、最稳定的方式,覆盖 CentOS 7 与 CentOS 8,步骤清晰、无风险操作,可作为你的日常排障手册。


一、方法一:通过 rd.break 进入紧急模式(更推荐)

rd.break 是 Red Hat 系列官方推荐的方式,通过在 GRUB 的内核启动行追加参数,使系统在 initramfs 阶段暂停,并提供一个紧急 shell。优点是流程更标准、兼容性好。


步骤 1:进入 GRUB 编辑界面

系统重启后,看到 GRUB 菜单时按"e":

Image

  • CentOS 7 中通常为:linux16 开头的行 

  • CentOS 8 中通常为:linux 开头的行



步骤 2:追加 rd.break

删除 rhgb quiet,并在该行末尾添加rd.break

Image

添加完成后按Ctrl + X

系统会进入 initramfs 提示符。

Image


步骤 3:重新挂载根文件系统为可写

默认是只读,需要先改为可写:

mount -o remount,rw /sysroot

步骤 4:切换到真实系统环境

chroot /sysroot

步骤 5:设置新的 root 密码

passwd root

步骤 6:触发 SELinux 重新标记(必须做)

touch /.autorelabel

避免重启后无法正常登录。

以下实际操作步骤以供参考:

Image

步骤 7:退出并重启

# centos 7.x 重启
exec /sbin/init

# centos 8.x 重启
exec /usr/sbin/reboot

系统将自动重启,SELinux 会进行重新标记,等待完成即可。


二、方法二:使用 /bin/bash 进入系统 Shell

第二种方法是通过修改内核参数,让系统在启动时直接进入根文件系统的 shell,操作步骤更短,但不是官方推荐方式。对于 CentOS 7 和 CentOS 8 同样适用。


步骤 1:编辑 GRUB


在 GRUB 菜单按 e

Image

找到:

  • CentOS 7:linux16 开头

  • CentOS 8:linux 开头


步骤 2:将 ro 修改为 rw,删除 rhgb quiet,并追加init=/bin/bash

Image

完成后 Ctrl + X 启动。


步骤 3:切换系统根环境

# 挂载 / 为可读写
mount -o remount,rw /

步骤 4:重置 root 密码

passwd root

步骤 5:SELinux 重新标记

touch /.autorelabel

步骤 6:重启

# centos 7.x 重启
exec /sbin/init

# centos 8.x 重启
exec /usr/sbin/reboot


三、内容小结

无论你使用的是 CentOS 7 还是 CentOS 8,只要能够进入 GRUB,就可以通过本文提供的两种方式安全地重置 root 密码:

  • 推荐使用 rd.break:官方标准、兼容性好

  • init=/bin/bash:步骤简短、效率高

建议将这两种方法加入应急手册中,以备不时之需。


打赏

本文链接:https://kinber.cn/post/5962.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客