Linux 忘记密码解决方法

忘记密码是新手最常遇到的窘境。别急着重装系统——只要能接触到机器的键盘,或者用的是云服务器,就能进入"救援模式"重设密码。本课讲解单用户/恢复模式与云控制台两条思路。

解决思路总览

重设 root 密码的核心是:在系统完全启动之前,让内核以单用户(维护)模式进入 shell。此时不需要密码即可拥有 root 权限,再用 passwd 修改密码即可。云服务器一般还能在厂商控制台直接"重置密码",是最省事的方式。

方法一:云控制台重置

  • 登录云厂商控制台 → 找到实例 → 更多 → 重置密码。
  • 输入新密码并重启实例,立即生效。
  • 适合没有本地键盘访问权的云服务器,最简单也最安全。

方法二:CentOS/RHEL 单用户模式

以 CentOS 7/8/9 为例:

  1. 重启主机,在 GRUB 菜单选中内核那一行,按 e 进入编辑。
  2. 找到以 linuxlinux16 开头的那一行,在末尾追加 rd.break
  3. Ctrl+X 启动进入紧急 shell,然后执行:
mount -o remount,rw /sysroot    # 把根文件系统改为可写挂载
chroot /sysroot                 # 切换进原系统的根目录
passwd root                     # 重设 root 密码
touch /.autorelabel             # 让 SELinux 下次启动重建安全标签
exit                            # 退出 chroot
reboot                          # 重启生效

方法三:Ubuntu/Debian 恢复模式

  1. 开机在 GRUB 菜单选择 "Advanced options for Ubuntu"。
  2. 进入带 (recovery mode) 的内核,选 root 进入 root shell。
  3. 执行以下命令重设密码:
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"。这套手法熟练后,还能顺手修复损坏的引导配置。

笔记加载中…