Linux 忘记密码解决方法
忘记密码是新手最常遇到的窘境。别急着重装系统——只要能接触到机器的键盘,或者用的是云服务器,就能进入"救援模式"重设密码。本课讲解单用户/恢复模式与云控制台两条思路。
解决思路总览
重设 root 密码的核心是:在系统完全启动之前,让内核以单用户(维护)模式进入 shell。此时不需要密码即可拥有 root 权限,再用 passwd 修改密码即可。云服务器一般还能在厂商控制台直接"重置密码",是最省事的方式。
方法一:云控制台重置
- 登录云厂商控制台 → 找到实例 → 更多 → 重置密码。
- 输入新密码并重启实例,立即生效。
- 适合没有本地键盘访问权的云服务器,最简单也最安全。
方法二:CentOS/RHEL 单用户模式
以 CentOS 7/8/9 为例:
- 重启主机,在 GRUB 菜单选中内核那一行,按
e进入编辑。 - 找到以
linux或linux16开头的那一行,在末尾追加rd.break。 - 按
Ctrl+X启动进入紧急 shell,然后执行:
mount -o remount,rw /sysroot # 把根文件系统改为可写挂载
chroot /sysroot # 切换进原系统的根目录
passwd root # 重设 root 密码
touch /.autorelabel # 让 SELinux 下次启动重建安全标签
exit # 退出 chroot
reboot # 重启生效
方法三:Ubuntu/Debian 恢复模式
- 开机在 GRUB 菜单选择 "Advanced options for Ubuntu"。
- 进入带
(recovery mode)的内核,选root进入 root shell。 - 执行以下命令重设密码:
mount -o remount,rw / # 恢复模式下根分区只读,先改为可写
passwd root # 重设 root 密码
# 输出:Enter new UNIX password:
# 输出:Retype new UNIX password:
reboot # 正常重启
如何防止再次忘记
设置新密码时注意以下几点:
- 长度 12 位以上,混合大小写字母、数字与符号。
- 把密码保存在密码管理器里,不要贴在显示器上。
- 平时用普通账号 + sudo 操作,root 密码只在必要时使用。
验证拥有 sudo 权限的普通用户是否可用:
sudo whoami
# 输出:root
小结:忘记密码有三条路——云控制台重置、GRUB 单用户模式、Ubuntu 恢复模式,核心都是"在启动早期拿到 root shell 再 passwd"。这套手法熟练后,还能顺手修复损坏的引导配置。