Linux重置root密码完整实操教程
在Linux服务器运维、虚拟机使用过程中,root超级管理员密码遗忘是极为常见的故障。root作为系统最高权限账户,密码丢失会导致无法登录系统、无法执行管理员操作,直接影响服务器运维与使用。Linux系统提供了官方安全的密码重置方案,无需重装系统、无需第三方工具,仅通过GRUB引导界面修改内核参数即可完成重置。
本文将详细讲解CentOS、Ubuntu、OpenEuler等主流Linux发行版的root密码重置方法,区分新旧系统版本,梳理标准操作步骤、关键命令、SELinux兼容方案及常见报错解决,适配物理机、虚拟机、云服务器等所有使用场景。
一、前置说明与操作前提
1. 适用场景
仅适用于忘记root密码、无法登录系统的情况;若已登录普通用户且拥有sudo权限,可直接执行 sudo passwd root 快速修改密码,无需复杂引导操作。
2. 核心前提
必须拥有服务器物理/控制台操作权限(虚拟机控制台、云服务器VNC控制台、物理机显示器键盘),远程SSH无法完成密码重置(重启会断开连接,无法操作引导界面)。
3. 原理简述
Linux开机通过GRUB2引导程序加载内核,我们可临时修改内核启动参数,跳过系统正常登录流程,进入单用户应急模式。在该模式下获取系统根目录读写权限,重置root密码,最后正常重启系统即可生效。
二、CentOS 7/8/OpenEuler 通用重置方法(rd.break 标准方案)
该方法是RHEL系列新版系统官方推荐方案,兼容性最强,适配CentOS7、CentOS8、欧拉系统,支持SELinux开启状态。
步骤1:重启系统,进入GRUB编辑界面
1. 重启Linux系统,开机黑屏出现GRUB2引导菜单(系统启动选择界面);
2. 选中当前默认的启动内核(通常为第一个选项),按下键盘 e键 进入内核参数编辑界面;
3. 界面会显示大量内核启动代码,通过方向键下滑找到 linux16 开头的参数行(核心启动行)。
步骤2:修改内核启动参数
1. 在 linux16 行参数末尾,找到只读挂载参数 ro ;
2. 删除 ro ,替换为 rw rd.break (核心参数,开启读写权限并进入应急中断模式);
3. 无需保存,修改完成后直接按下组合键 Ctrl+x,系统会根据修改后的参数启动,进入紧急救援模式。
步骤3:切换真实系统环境
此时系统进入的是临时内存文件系统,需要切换到本地真实系统根目录,执行命令:
执行后命令行前缀变为 sh-4.4# ,代表已成功进入真实系统环境,可执行密码修改操作。
步骤4:重置root密码
执行密码修改命令,修改root账户密码:
1. 输入新密码(输入时屏幕无显示,属于正常现象),回车;
2. 再次确认新密码,回车;
3. 出现 password updated successfully 提示,即代表密码修改成功。
注意:新版系统不支持简单弱密码(纯数字、纯字母),建议设置字母+数字+特殊符号的复杂密码。
步骤5:SELinux环境更新(关键必做步骤)
若系统开启SELinux(默认开启),必须执行以下命令更新上下文标签,否则重启后会无法登录、系统报错:
该命令用于自动修复系统文件安全上下文,无输出提示即为执行成功。
步骤6:退出环境并重启系统
1. 先退出chroot系统环境:
2. 再次执行重启命令,完成全部操作:
3. 系统会自动执行SELinux重新标记(开机进度条较慢,耐心等待即可),重启完成后,使用新root密码即可正常登录。
三、CentOS 6 旧版系统重置方法(init 方案)
CentOS6及更早旧版本无 rd.break 参数,采用 init=/bin/bash 进入单用户模式,操作如下:
1. 重启系统,GRUB界面按 e键 编辑内核参数;
2. 选中 kernel 行,再次按 e键 进入单行编辑;
3. 参数末尾空格追加 init=/bin/bash ,回车确认;
4. 按 b键 启动系统,直接进入单用户shell界面;
5. 重新挂载根目录为可写模式:
6. 重置root密码: passwd root ,确认新密码;
7. 执行 exec /sbin/init 正常启动系统,密码生效。
四、Ubuntu 系统root密码重置方法
Ubuntu系统默认root账户未启用、无默认密码,遗忘自定义root密码可通过恢复模式重置,步骤如下:
1. 重启Ubuntu系统,开机长按 Shift键 调出GRUB引导菜单;
2. 选择 Advanced options for Ubuntu(高级选项),回车;
3. 选择对应内核的 (recovery mode) 恢复模式,按 e键 编辑参数;
4. 找到 linux 开头参数行,将末尾的 ro recovery nomodeset 修改为 rw init=/bin/bash ;
5. 按下 Ctrl+x 进入单用户root shell;
6. 直接执行密码重置命令:
7. 输入并确认新密码,执行 exec /sbin/init 重启系统即可。
五、已登录普通用户快速改密(无需重启)
若当前已登录拥有sudo权限的普通用户,无需重启系统、无需进入救援模式,一条命令直接修改root密码,高效便捷:
输入当前普通用户的sudo密码,之后输入新的root密码并确认,即刻生效。
六、常见报错与问题解决
1. 密码修改成功,重启无法登录
大概率是未执行 touch /.autorelabel 命令,SELinux上下文异常。可重新进入救援模式,补执行该命令后重启,等待自动标记完成即可。
2. 提示密码过于简单拒绝修改
新版Linux有密码强度校验机制,更换复杂密码(8位以上,大小写字母+数字+符号)即可解决。
3. GRUB引导菜单不显示
虚拟机/云服务器快速开机容易跳过引导界面,重启时连续快速敲击Shift键(Ubuntu)或等待倒计时(CentOS)即可调出。
4. 挂载只读、无法修改密码
核对内核参数是否正确,必须添加 rw 读写参数,未替换 ro 为 rw 会导致文件系统只读,无法写入密码配置。
七、重要安全注意事项
1. 物理权限安全风险
该密码重置方式仅需控制台权限即可绕过系统密码验证,因此物理服务器、机房设备需做好物理防护,禁止无关人员接触控制台,避免恶意篡改密码。
2. 重置后及时加固
密码重置完成后,建议定期更换密码,禁止使用弱密码;生产环境服务器可搭配密钥登录,关闭密码登录,提升安全性。
3. 禁止频繁操作
救援模式修改系统核心配置,非必要不频繁重置密码,避免SELinux反复标记导致系统日志异常。
八、总结
Linux root密码重置的核心逻辑统一且简单:GRUB编辑内核参数→进入应急模式→挂载读写权限→重置密码→修复SELinux上下文→重启生效。
- 新版CentOS7/8、欧拉系统:优先使用 rd.break 标准方案,兼容性最稳;
- 旧版CentOS6:使用 init=/bin/bash 单用户方案;
- Ubuntu:通过恢复模式修改内核参数重置;
- 有sudo权限:直接 sudo passwd root 快速修改。
熟练掌握该操作可快速解决服务器密码遗忘故障,无需重装系统、不丢失数据,是Linux运维必备基础实操技能。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)