服务器忘记 root 密码如何重置
学会这篇,你就能在忘记服务器 root 密码时,通过单用户模式或救援模式把密码重置回来,重新登录自己的机器。下面按最常见的 Linux 服务器(CentOS 7/8、Ubuntu 20.04/22.04)分步骤讲,前提是你能接触到服务器的控制台(云服务商的 VNC 控制台,或机房的显示器和键盘)。
第一步:确认你用的是哪种控制台
这一步要确认你能不能进到系统启动画面,因为后面的操作全在启动画面上做。结果是你知道自己该走哪条路。
- 云服务器(阿里云、腾讯云、华为云、AWS 等):登录云厂商控制台,找到这台实例,点「远程连接」或「VNC 登录」,能进到一个黑底白字的登录界面,说明你有控制台权限。
- 物理服务器:接上显示器键盘,重启后能看到 GRUB 菜单。
- 如果你只有 SSH,进不去系统,那必须先通过云厂商控制台或机房把控制台拿到手,没有控制台就没法做下面的操作。
注意:部分云厂商的 VNC 控制台不支持粘贴,用户名密码要手打,建议提前把要设的密码写在一个地方。
第二步:进入 GRUB 菜单并编辑启动参数
这一步要在系统启动时抢在引导阶段拦住它。做完你能进到可以改启动参数的地方。
重启服务器,在出现厂商 Logo 或 BIOS 画面后,一直按 Esc(有些机型是 Shift 或 e),直到出现 GRUB 菜单。如果直接进了系统,说明启动太快,再重启一次,这次从一开始就连续按。
在 GRUB 菜单里,用方向键选中第一项(通常是 CentOS Linux (xxx) 7 (Core) 或 Ubuntu),按 e 进入编辑模式。
第三步:改内核启动参数,进入单用户模式
这一步是核心,让系统跳过正常启动流程,直接给你一个不需要密码的 root shell。做完你能看到一个 # 提示符。
在编辑界面里找到以 linux 或 linux16 / linuxefi 开头的那一行,把光标移到行尾,删掉或忽略 rhgb quiet,然后在行尾加上:
CentOS / RHEL:
rd.break
或者用另一种方式,把 ro 改成 rw,并在行尾加 init=/bin/bash。
Ubuntu:
rw init=/bin/bash
改完后按键:
- CentOS 的
rd.break方式:按Ctrl + X启动。 - 直接加
init=/bin/bash的方式:按Ctrl + X或F10启动。
启动后会停下,出现提示符。CentOS rd.break 方式进入的是 switch_root:/#。
第四步:挂载文件系统为可写并重置密码
这一步把根分区挂成可写,否则改不了密码文件。做完密码就已经换好了。
如果是 rd.break 方式(提示符是 switch_root:/#):
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
然后输入两遍新密码。密码要够复杂,至少 8 位。
如果提示符已经是 bash 且根目录可写(init=/bin/bash 方式),直接执行:
passwd root
注意:如果系统开了 SELinux(CentOS 默认开),
rd.break方式下必须再执行一条命令,否则重启后可能进不去或密码无效:
> touch /.autorelabel >这条命令会让系统下次启动时重建 SELinux 标签,重启会慢几分钟,属正常现象,别断电。
第五步:退出并重启,用新密码登录
这一步让系统正常启动,验证密码是否生效。做完你能用新密码登录。
如果是 chroot 环境:
exit
exit
或者执行:
reboot -f
如果系统卡住不重启,直接通过云控制台点「重启」或物理机按 Ctrl + Alt + Delete。
重启完成后,用 root 和新密码登录。登录成功后,建议立刻再做一件事:确认 SELinux 状态(getenforce),如果是 Enforcing 且刚才没执行 touch /.autorelabel,重启后可能出现登录异常,可再进单用户模式补上。
注意:
rd.break和init=/bin/bash这两种方式,本质上都是物理接触机器就能改密码,所以服务器一定要限制控制台访问权限,云账号开启二次验证。
小结
- 重置 root 密码的前提是能进服务器控制台(VNC / 显示器键盘),只有 SSH 是做不到的。
- 核心入口是开机时按
Esc或e进 GRUB 编辑,在linux行尾加rd.break(CentOS)或rw init=/bin/bash(Ubuntu)。 - CentOS 用
rd.break时要mount -o remount,rw /sysroot再chroot /sysroot,然后passwd root。 - 开了 SELinux 的系统,务必执行
touch /.autorelabel,否则重启后密码可能不生效。 - 重置完记得做安全加固:限制控制台、开二次验证、密码足够复杂。
原文链接:https://www.gj0.com/thread-293.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。