服务器CentOS 6登录密码忘了,如何破解才能不重装系统?

在系统管理的工作中,忘记 root 密码是一个虽然尴尬但时有发生的问题,特别是对于像 CentOS 6 这样的老版本系统,幸运的是,通过进入单用户模式,我们可以轻松地重置密码,而无需重新安装整个系统,这个过程需要物理访问或具备控制台访问权限(如 KVM、iDRAC 或虚拟机控制台),以下是详细、安全且结构清晰的步骤指南,帮助您恢复对 CentOS 6 服务器的访问权限。

服务器CentOS 6登录密码忘了,如何破解才能不重装系统?

操作准备

在开始之前,请确保您拥有服务器的直接控制台访问权限,这个过程无法通过 SSH 或其他远程连接方式完成,您需要能够在系统启动的瞬间进行按键操作。

第一步:重启系统并进入 GRUB 菜单

重启您的 CentOS 6 服务器,在开机自检(POST)完成后,系统会加载 GRUB 引导加载程序,您会看到一个启动菜单,列出了可用的内核版本,这个界面停留的时间很短,默认可能只有几秒钟。

当看到 GRUB 启动菜单时,立即按下键盘上的 e 键,这将进入内核编辑界面,如果您没有看到菜单,系统可能在超时后直接进入了默认启动项,此时请重启服务器并更早、更果断地按下 e 键。

第二步:编辑内核启动参数

进入编辑界面后,您会看到几行文本,通常以 rootkernelinitrd 开头,我们需要修改的是 kernel 那一行。

  1. 使用键盘上的方向键,将光标移动到以 kernellinux 开头的那一行,这一行很长,包含了许多内核启动参数。
  2. 在该行中,找到类似 ro 的参数。ro 代表 “read-only”(只读),它指示系统在启动时以只读模式挂载根文件系统,我们需要将其修改为 rw(read-write,读写),以便稍后能修改密码文件。
  3. 移动光标到该行的最末尾,添加一个空格,然后输入 init=/bin/bash

这个参数 init=/bin/bash 是整个操作的核心,它告诉系统在内核加载完成后,不要运行正常的初始化进程(如 /sbin/init),而是直接运行一个 Bash shell,这样,我们就能获得一个具有 root 权限的命令行环境,且无需输入任何密码。

完成修改后,该行末尾应类似:... rhgb quiet init=/bin/bash

第三步:启动并挂载文件系统

参数修改完毕后,按下 Ctrl + Xb 键(取决于 GRUB 版本)来使用修改后的参数启动系统。

系统会直接进入一个命令行提示符,通常显示为 sh-4.1# 或类似形式,虽然我们已经是 root 用户,但为了确保万无一失,最好检查一下根文件系统的挂载状态,输入以下命令:

服务器CentOS 6登录密码忘了,如何破解才能不重装系统?

mount | grep "on /"

您应该看到类似 /dev/mapper/vg_centos-lv_root on / type ext4 (rw) 的输出,括号中的 rw 表示根分区已成功挂载为读写模式,如果它显示为 ro,您需要手动重新挂载:

mount -o remount,rw /

第四步:重置 root 密码

我们可以使用 passwd 命令来重置密码了,直接输入:

passwd

或者明确指定为 root 用户:

passwd root

系统会提示您输入新的 UNIX 密码,并再次确认,在输入密码时,屏幕上不会有任何字符显示,这是正常的安全措施,输入完成后按回车键。

第五步:更新 SELinux 上下文并重启

由于我们直接修改了 /etc/shadow 文件,可能会触发 SELinux 的安全策略,导致重启后依然无法登录,为了防止这种情况,建议执行以下命令来修正安全上下文:

touch /.autorelabel

这个命令会在根目录创建一个空文件,系统在下次启动时会检测到它,并为整个文件系统重新标记 SELinux 上下文,这个过程可能需要几分钟时间,取决于文件数量和磁盘性能。

执行以下命令,将内存中的所有更改写入磁盘,并强制重启系统:

sync
sync
reboot -f

sync 命令执行两次是为了确保数据完整写入。reboot -f 中的 -f 参数是强制重启,因为正常的重启进程并未运行。

服务器CentOS 6登录密码忘了,如何破解才能不重装系统?

系统重启后,您就可以使用新设置的密码登录 root 账户了。


相关问答 (FAQs)

问题1:在启动时按下 e 键后,没有进入 GRUB 编辑界面,而是直接启动了系统,怎么办?

解答: 这通常是因为 GRUB 菜单的等待时间(timeout)被设置为了 0,您可以重启服务器,并在开机画面一出现时就持续、快速地按 e 键,直到成功进入编辑界面,如果依然不行,您可能需要在启动时进入 BIOS/UEFI 设置,查看是否有相关选项可以显示详细的启动信息或启用启动菜单,某些虚拟机平台(如 VMware)可能需要您在启动窗口内点击一下,确保键盘输入被捕获。

问题2:在单用户模式下执行 passwd 命令后,系统提示 “Authentication token manipulation error” 错误,是什么原因?

解答: 这个错误是密码重置失败最常见的提示,根本原因在于根文件系统是以只读(read-only)模式挂载的,导致 passwd 程序无法将新密码写入 /etc/shadow 文件,请务必按照指南中的第三步,使用 mount | grep "on /" 命令检查挂载状态,如果确实是 ro,请执行 mount -o remount,rw / 命令将其重新挂载为读写模式,然后再尝试运行 passwd 命令即可成功。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-09 00:28
下一篇 2025-10-09 00:32

相关推荐

  • CentOS系统如何正确安装686架构版本,有哪些注意事项?

    CentOS安装686环境的详细指南准备工作在开始安装CentOS 686环境之前,我们需要做好以下准备工作:确保您的计算机硬件支持686架构,准备一个CentOS 686版本的安装镜像文件,准备一个至少8GB的U盘,用于制作启动盘,确保您的计算机BIOS支持从U盘启动,制作启动盘下载并安装UltraISO软件……

    2026-01-26
    006
  • CentOS系统中py文件安装和配置时遇到的问题有哪些?

    CentOS环境下Python文件的部署与执行Python文件概述在CentOS环境下,Python是一种流行的编程语言,广泛应用于各种自动化脚本、网站后端以及数据分析等领域,Python文件通常以.py为扩展名,包含了Python代码,本文将介绍如何在CentOS上部署和执行Python文件,Python环境……

    2026-01-28
    007
  • centos 官网 repo 地址是什么?如何配置使用?

    CentOS 作为一款广泛使用的 Linux 发行版,其软件仓库(repo)的配置与管理是系统运维的重要环节,本文将围绕 CentOS 官方 repo 的来源、配置方法、常见问题及优化策略展开说明,帮助用户高效管理软件源,CentOS 官方 repo 的概述与重要性软件仓库是 CentOS 系统获取软件包的核心……

    2025-12-14
    004
  • 老系统CentOS6如何通过pyenv安装新版Python?

    在信息技术领域,尤其是在企业环境中,维护老旧系统是一项常见且充满挑战的任务,CentOS 6,作为曾经非常稳定和流行的服务器操作系统,至今仍在许多关键业务中服役,其默认搭载的Python 2.6版本已远远不能满足现代软件开发的需求,为了在不破坏系统稳定性的前提下使用Python 3.x等新版本,pyenv成为了……

    2025-10-04
    0011

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信