恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战

  • 首页
  • 资讯中心
  • /
  • RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战

相关资讯

大学院情报系笔试第20套:线性代数与数据结构高频考点全解析 2026/10/4 2:48:24
Coding Agent为何抛弃纯Chat?拆解Claude Code与Hermes的工程闭环逻辑 2026/10/4 2:48:24
Linux服务器IP访问控制实战:iptables与nftables规则配置解析 2026/10/4 2:48:24

最新资讯

CPG控制网络入门:从振荡器到四足机器人实时步态生成
YOLOv5车牌检测与OCR识别两段式架构实战指南
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
动力总成悬置解耦率计算:MATLAB与Adams仿真方法对比与实操指南
VDI云桌面选型与实施:从远程协议、存储规划到登录风暴避坑指南
STM32F103C8T6+ESP8266嵌入式WiFi控制实战指南

今日推荐

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战

发布时间:2026/10/4 2:48:24
RHEL 6.9忘记root密码?单用户模式+init=/bin/bash找回实战 RHEL系统忘记密码这事几乎每个搞Linux运维的人都遇到过。不管你是刚入行的新手还是天天泡在机房的老油条总有那么几个瞬间——手一抖把root密码改错了或者新交接的服务器根本没人知道密码再要么就是密码过期又忘了更新。RHEL 6.9这种老版本网上资料确实不少但很多写得含糊照着操作容易卡壳。这篇文章就把我在RHEL上找回密码的完整过程、底层原理和踩过的坑一次讲清楚。1. 场景分析与思路拆解1.1 为什么RHEL密码找回和Ubuntu不一样很多人在网上搜“Linux忘记密码”出来的第一篇文章往往是Ubuntu的恢复模式或者基于systemd的rd.break方法。如果你照搬到RHEL 6.9上大概率会失败。因为RHEL 6.x系列用的是GRUB 1也叫GRUB Legacy引导参数、init进程、文件系统挂载时机都和RHEL 7/8以及Ubuntu完全不同。RHEL 6.9默认使用的是grub.conf引导配置内核启动后交给initSysVinit体系而不是systemd。这就决定了我们修改密码的切入点不一样RHEL 7系统习惯用rd.break或者init/sysroot/bin/sh配合SELinux relabelRHEL 6则可以通过给内核传递single或init/bin/bash参数直接进入单用户模式操作更直接。另一个关键差异是SELinux的处理。RHEL默认开启SELinux如果你改了/etc/shadow之后没有处理SELinux上下文很可能重启后系统无法正常登录甚至触发一系列奇怪问题。很多网上教程完全不提这一点照着做的人就只能自己踩坑。1.2 两种主流找回思路对比针对RHEL 6.9最常用的找回密码方法主要有两条路一是通过GRUB引导菜单进入单用户模式二是在GRUB引导时指定init/bin/bash直接进入shell。两条路的核心逻辑是一样的在内核启动阶段绕过正常的登录认证获得一个root权限的shell然后修改/etc/shadow中的密码哈希。两种方式各有优劣我做成表大家对比一下方案实现难度对SELinux的影响适用场景单用户模式single简单只需在grub.conf的kernel行追加single较小但仍有风险最常用密码重置首选init/bin/bash同样简单需注意文件系统读写状态较大可能导致SELinux上下文错乱单用户模式进不去时的备用方案我个人推荐优先使用single方式。因为它更接近系统正常的启动流程init进程会完成大部分初始化工作包括文件系统remount为可读写、SELinux策略加载等后续操作时的意外更少。init/bin/bash虽然也能达到目的但很多环节需要手动操作对新手不太友好。2. 找回密码前的必要准备2.1 物理机与虚拟机操作的差别在动手之前先得搞清楚你的RHEL 6.9跑在哪里。物理机和虚拟机在“如何进入GRUB菜单”这一步上操作方式完全不同。物理机上服务器开机自检过后会短暂出现GRUB引导菜单通常只有几秒钟。你需要在这段时间内快速按任意键一般是上下方向键来暂停自动启动否则就会直接进系统。如果是机架式服务器还要注意有些通过远程管理卡如iLO、iDRAC连接的机器按键时机更难把握建议提前把GRUB的timeout值调大或者干脆在BIOS设置里把启动进度放慢。虚拟机上就没这么紧张了。VMware vSphere、VirtualBox或者KVM平台你都可以通过控制台界面操作而且在GRUB菜单出现时虚拟机的画面更新速度通常比物理机慢给了你更充裕的反应时间。但有一点需要提醒如果你用的是云服务器比如阿里云、腾讯云的ECS这个方法基本行不通因为你无法在云控制台上直接进入GRUB引导界面。云服务器一般只能通过控制台的重置密码功能处理。2.2 必须了解的两个关键文件在RHEL 6.9中和密码相关的核心文件主要有两个/etc/passwd和/etc/shadow。/etc/passwd保存的是用户的基本信息包括用户名、UID、GID、家目录、默认shell等。在早期的Unix系统中密码哈希直接存在这个文件里后来为了安全才把哈希转移到/etc/shadow中并且这个文件的权限是----------只有root用户或者具有适当权限的进程能读取。/etc/shadow中每一行代表一个用户用冒号分隔为九个字段。密码哈希位于第二个字段。如果你只想清空密码登录时不需要输入密码可以直接把第二个字段置空如果想设置新密码可以用passwd命令生成哈希后替换。实际运维中我很少去手动编辑shadow文件因为用passwd命令自动处理哈希和权限更安全手动编辑出了错容易导致系统无法登录。2.3 先给数据上保险每次做密码重置我都会习惯性先确认当前系统有没有重要数据需要保护。倒不是说密码重置本身会删除数据但在操作过程中如果误执行了类似mount、umount或者SELinux relabel的步骤某些异常情况下可能导致系统故障。尤其在生产服务器上重置密码前一定要确认是否有快照或备份可用当前是否有运行业务是否有其他管理员在线可以配合机房或云平台的紧急登录通道是否开启如果这些都没问题再开始操作。千万别手一快直接重启万一这台机器上有别人正在跑的任务你就等着被批吧。3. 实操RHEL 6.9通过单用户模式找回密码3.1 进入GRUB引导菜单这是整个流程中最容易出问题的一步。RHEL 6.9的GRUB菜单默认配置在/boot/grub/grub.conf中注意不是/etc/default/grub那是GRUB 2的配置方式。系统启动时GRUB菜单显示时间由timeout参数控制RHEL 6.9默认通常是5秒。你需要在这5秒内按下键盘上的任意方向键比如向上或向下箭头。这样GRUB会停止自动倒计时等待你手动选择。如果没来得及按系统已经进入启动流程了那就只能重启等下一次机会。进入GRUB菜单后你会看到类似下面的界面RHEL (2.6.32-696.el6.x86_64) RHEL (2.6.32-696.el6.x86_64) (single user)不同系统版本的显示略有差异但原理都一样。你选第一项默认内核然后按e键进入编辑模式。3.2 修改kernel引导参数按e后你会看到GRUB的引导配置明细包括root、kernel、initrd这几行关键配置。用方向键把光标移动到以kernel开头的那一行这一行通常长这样kernel /vmlinuz-2.6.32-696.el6.x86_64 ro rootUUIDxxxx ro quiet再次按e键GRUB会进入该行的编辑状态。在行的末尾追加一个参数single追加完成后按回车确认编辑回到GRUB菜单界面。这时你会看到kernel行末尾多了一个single。接下来按b键boot启动系统。系统会以内核参数single启动进入单用户模式。在RHEL 6.9中进入单用户模式后你通常会直接获得一个root权限的shell但有时候系统会有一点小延迟耐心等几秒等启动过程结束屏幕上出现类似#的提示符。3.3 挂载文件系统并修改密码进入单用户模式后默认情况下根文件系统是只读状态所以不能直接修改/etc/shadow。需要先把它重新挂载为读写模式mount -o remount,rw /这行命令的意思是重新以读写模式挂载根文件系统。如果你忘了执行这一步后面运行passwd时会报错提示文件系统只读或者无法更新shadow文件白白浪费时间排查。执行完挂载后就可以修改root密码了passwd root系统会提示你输入两次新的密码。输入时注意屏幕不会显示任何字符这是正常的不是键盘坏了。设置完成后会提示passwd: all authentication tokens updated successfully.表示密码修改成功。接下来还有个关键步骤如果系统开启了SELinuxRHEL 6.9默认是 enforcing建议检查并重置相关文件的安全上下文。最简单的方法是创建一个.autorelabel文件让系统重启时自动修复SELinux标签touch /.autorelabel这个文件存在的话系统在下次启动过程中会对整个文件系统重新打SELinux标签耗时根据磁盘大小和文件数量而定可能从几分钟到十几分钟不等。如果跳过这步有时候重启后会因为SELinux上下文和预期不符导致无法正常登录。最后执行重启reboot重启后root密码就已经是刚才设置的新密码了。4. 备用方案通过init/bin/bash找回密码4.1 什么时候需要用到这个方案单用户模式虽然好用但某些情况下就是进不去比如grub.conf中配置了hiddenmenu且你没能在正确时机按键或者你的grub.conf配置有误导致单用户模式无法正常拉起。另外如果你面对的是RHEL 6.9的一个异常系统单用户模式在挂载根文件系统时出现错误这时也可以尝试init/bin/bash方案。这个方法的核心思路是不让init进程参与启动直接让内核启动后执行/bin/bash相当于你获得了一个最干净的shell环境。但正因为init没有运行很多系统服务和文件系统的初始化都不会进行需要你手动完成必要的设置。4.2 操作步骤详解进入GRUB编辑界面的方式与单用户模式完全相同只是在编辑kernel行时追加的参数不是single而是init/bin/bash启动后你不会看到正常的启动日志而是直接进入一个bash提示符。此时根文件系统同样是只读状态第一步还是重新挂载mount -o remount,rw /然后直接修改密码。但这里有个问题/bin/bash环境里可能没有passwd命令的完整运行条件。在很多精简环境下passwd命令依赖的PAM可插拔认证模块和相关库文件不一定能正常工作。如果运行passwd报错那就需要手动编辑/etc/shadow文件。用vi或者直接重定向的方式修改shadow文件都可以但vi在只有一个bash shell的环境下使用起来比较困难更稳妥的方式是用echo配合管道不过这种方式有风险。我建议还是用passwd绝大部分RHEL 6.9的基本环境是支持passwd命令运行的。如果实在不行再用下面的方法清空root密码sed -i s/^root:[^:]*:/root::/ /etc/shadow这条命令的意思是找到root:开头的行把第二个字段密码哈希字段替换为空。这样系统上root用户的密码被清空下次登录时直接按回车就能进入。需要注意的是清空密码后应该尽快用passwd设置新密码否则任何人在控制台都能直接root登录安全风险极高。4.3 SELinux处理不能忘使用init/bin/bash方式修改密码后SELinux上下文的问题会更突出。因为没有init进程参与正常启动时应该执行的SELinux策略加载和文件系统权限恢复都跳过了。如果不处理可能会出现重启后登录时密码正确但系统一直循环登录、或者SELinux报错的情况。处理方法还是老一套创建.autorelabel文件touch /.autorelabel然后重启reboot -f-f参数是强制重启因为在这个环境下没有完整的服务管理机制直接执行reboot可能不会有响应。5. 常见问题与排查技巧实录5.1 文件系统只读密码无法修改现象执行passwd root时提示cannot change password或者类似write failed的错误。原因根文件系统没有以读写模式重新挂载。解决确认是否执行过mount -o remount,rw /。执行后可以用mount命令查看输出确认根目录挂载行中包含rw标志。这个坑我见过太多次了特别是从RHEL 7转过来用6的人容易按照习惯直接passwd然后卡在只读文件系统上。5.2 GRUB菜单一闪而过来不及按键现象系统启动时GRUB菜单只显示一瞬间还没按键就自动引导进系统了。原因grub.conf中的timeout值太小或者开启了hiddenmenu。解决如果你有登录权限可以从系统里修改/boot/grub/grub.conf把timeout改成10或更大并注释掉hiddenmenu。修改后重启就有充足时间按键了。如果你没有登录权限就只能在启动时用最快的速度反复按方向键。物理机上尤其考验手速需要提前把手指放在键盘上等待时机。5.3 密码重置后仍无法登录现象修改root密码并重启后输入新密码总是提示认证失败或者出现循环回到登录界面的情况。原因这种情况十有八九是SELinux上下文问题。正常启动过程中SELinux会为/etc/shadow文件打上正确的类型标签。如果你在单用户模式或bash环境中修改过文件文件的SELinux标签可能被改成了default_t或其他不正确的类型导致login程序在PAM认证阶段无法读取shadow文件。解决创建/.autorelabel后重启。在autorelabel过程中系统会扫描整个文件系统把所有文件的SELinux标签重设为默认值这个过程虽然耗时但很值得。标签修复完成后再次重启即可正常登录。5.4 passwd命令交互卡住现象在init/bin/bash环境下运行passwd出现“password updated”字样但实际没生效。原因罕见但可能发生。某些情况下passwd命令会认为更新成功其实shadow文件因为I/O缓存问题没有真正落盘。这时候可以先执行sync命令强制把内存中的数据写入磁盘然后再确认。sync如果shadow文件里有错误也可能会出现这种“假成功”的情况可以用pwck命令做一次一致性检查如果环境里装了这个工具的话。5.5 虚拟机挂载了特殊磁盘导致启动失败单用户模式启动时可能会因为某个非关键分区挂载失败而卡住比如/home单独分区、/var单独分区等挂载不上的情况。如果遇到这种问题可以尝试在GRUB菜单的kernel行追加参数single single-user emergency或者干脆用init/bin/bash绕过大多数挂载流程。进入shell后不要强行挂载所有分区只remount根目录改完密码后正常重启就行。6. 回到正常系统后收尾工作6.1 更新完密码后的安全检查密码重置成功后别急着退出。我建议做以下几件事确认/etc/shadow中root行除了新密码外其他字段也正常修改密码后立刻测试重启一次确认能正常登录查看/var/log/secure日志确认没有异常登录记录如果有多个系统管理员及时通知大家新密码的保管方式另外如果root密码长期由多人保管建议配置sudo权限给需要的同事减少root密码暴露的可能性。RHEL 6.9中sudo的配置在/etc/sudoers用visudo编辑。6.2 防止下次再忘记密码的实用技巧根据我的经验与其每次忘记密码后手忙脚乱地找教程不如提前做好几件事在/etc/shadow之外准备一张写有密码的纸条锁在机房的密码柜里用密码管理器如KeePass、Bitwarden统一管理服务器密码在CMDB或运维系统中登记密码更新时间设定周期提醒对重要服务器可以配置密钥登录SSH key这样即使密码忘记也可以通过密钥进入系统在云平台上尽量用密钥对认证密码只作为备用手段RHEL 6.9虽然已经算老系统了但生产环境中存量依然不小。掌握它的密码找回方法不只是应急技能更是对系统启动流程、文件系统挂载、SELinux机制的一次深入理解。整个操作过程不超过五分钟但背后的原理才是真正值钱的东西。以后不管遇到RHEL 6、7还是8你都能明白所谓找回密码核心就是“在内核启动阶段获得一个root shell然后重新写password哈希”这么简单。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号