Linux 忘记密码解决方法
《Linux 忘记密码解决方法》
🔐 学习目标
- 掌握 Linux 系统中忘记 root 或普通用户密码的解决方案。
- 理解单用户模式(Single User Mode)的工作原理和使用场景。
- 能在阿里云 Ubuntu ECS 上通过控制台进入恢复模式修改密码。
- 学会设置救援密码或使用临时账户,预防未来密码遗忘问题。
🧠 核心重点(表格提炼)
| 方法 | 操作方式 | 适用场景 |
|---|---|---|
| 单用户模式 | 修改 GRUB 启动参数,进入无密码 root shell | 本地/虚拟机、支持串口控制台的云服务器 |
| 使用 LiveCD | 挂载原系统分区并修改 /etc/shadow |
物理机或支持挂载镜像的虚拟环境 |
| 阿里云控制台救援模式 | 创建自定义镜像或挂载磁盘到新实例 | 云服务器无法直接访问 GRUB 的情况 |
| 添加临时用户 | 在已知 root 权限下创建新用户并赋予 sudo 权限 | 预防性措施,用于快速恢复 |
🔍 详细讲解
1. 使用单用户模式重置密码 💡
单用户模式是一种特殊的启动状态,允许你以
root权限无需密码进入系统,是忘记密码时最常用的恢复手段。
✅ 步骤如下(适用于阿里云 Ubuntu ECS):
第一步:通过阿里云控制台进入“串口控制台”
- 登录 阿里云控制台。
- 找到你的 Ubuntu ECS 实例 ➝ 点击“远程连接” ➝ 选择“串口控制台”。
📌 注意:
- 如果你是第一次使用串口控制台,请先启用“VNC 控制台”功能。
- 进入后你将看到类似 GRUB 的启动界面。
第二步:编辑启动项,进入 recovery 模式
- 在 GRUB 启动菜单中,按方向键选择第一个启动项(如 Ubuntu)。
- 按
e键进入编辑模式。 - 找到以
linux /boot/vmlinuz...开头的那一行。 - 在该行末尾添加:
rw init=/sysroot/bin/sh
- 按
Ctrl + X或F10启动。
第三步:挂载根文件系统为可读写
系统将以单用户模式启动,但此时根目录是只读的:
mount -o remount,rw /sysroot
第四步:切换到真实根系统
chroot /sysroot
你现在进入了真实的系统环境中!
第五步:重置 root 密码
passwd root
输入新密码即可完成重置。
📌 注意:
- 若提示
Authentication token manipulation error,请执行以下命令后再尝试:
touch /.autorelabel
第六步:退出并重启系统
exit
reboot
系统将正常启动,并应用新的 root 密码。
2. 使用 LiveCD 恢复密码(物理机/虚拟机专用)💿
如果你使用的是物理服务器或 VMware/VirtualBox 等虚拟化平台,可以通过 LiveCD 启动并挂载原系统进行密码修改。
✅ 步骤如下:
- 将 Ubuntu LiveCD ISO 文件挂载到虚拟机。
- 启动系统,进入 “Try Ubuntu” 模式。
- 打开终端,查找原系统的根分区:
sudo fdisk -l
- 挂载根分区(假设为
/dev/sda1):
sudo mount /dev/sda1 /mnt
- 挂载其他必要目录:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
- 切换到原系统环境:
sudo chroot /mnt
- 修改 root 用户密码:
passwd root
- 退出并卸载所有挂载点:
exit
sudo umount /mnt/dev /mnt/proc /mnt/sys
sudo umount /mnt
- 移除 LiveCD,重启系统即可。
3. 阿里云 ECS 救援模式(推荐方案)🛠️
如果你无法通过串口控制台操作,可以使用阿里云提供的“镜像备份+挂载修复”方式。
✅ 步骤如下:
- 在阿里云控制台创建当前 ECS 的系统盘快照或自定义镜像。
- 新建一台相同配置的 Ubuntu ECS 实例。
- 将原系统盘作为数据盘挂载到新实例上。
- 登录新实例,挂载原系统盘:
sudo mkdir /original
sudo mount /dev/vdb1 /original # 假设数据盘为 vdb1
- 修改
/original/etc/shadow文件,清空 root 密码字段(替换为root::...)。 - 卸载并重新制作镜像或还原回原 ECS。
- 启动原 ECS,即可无密码登录。
📌 注意:
- 此方法适用于高级用户或企业运维人员。
- 修改
/etc/shadow文件需谨慎,避免格式错误导致系统异常。
4. 设置临时恢复用户(预防性措施)🛡️
为了防止再次忘记密码,可以在拥有 root 权限时提前创建一个“紧急用户”。
✅ 步骤如下:
- 创建新用户:
sudo adduser rescue
- 设置密码并确认。
- 将其加入
sudo组:
sudo usermod -aG sudo rescue
- 测试是否能用该用户提权:
su - rescue
sudo whoami
📌 建议:
- 定期更换此用户的密码。
- 可结合 SSH 公钥认证增强安全性。
🧩 实战案例:ECS 忘记 root 密码恢复实战 🛠️
场景描述:
你正在管理一台阿里云 Ubuntu 22.04 的 ECS 实例,之前设置了 root 密码,但现在忘记了,也无法使用 sudo(因为没有普通用户具有管理员权限)。
解决方案:
✅ 使用阿里云串口控制台 + 单用户模式
- 登录阿里云控制台 ➝ 找到 ECS 实例 ➝ 进入“远程连接” ➝ 选择“串口控制台”。
- 在 GRUB 启动界面按下
e编辑启动项 ➝ 添加rw init=/sysroot/bin/sh。 - 启动后进入 shell ➝ 挂载
/sysroot为可写 ➝ 使用chroot进入原系统 ➝ 执行passwd root。 - 重启后即可使用新密码登录 root。
📌 成功验证:
ssh root@your_ecs_ip
📌 注意事项 & 安全建议
| 项目 | 建议 |
|---|---|
| 不要频繁使用 root | 推荐使用普通用户配合 sudo 操作 |
| 禁用 root 登录(可选) | 修改 /etc/ssh/sshd_config 中的 PermitRootLogin no |
| 使用密钥认证替代密码 | 更安全,也便于自动化脚本调用 |
定期备份 /etc/shadow |
防止误删或加密损坏 |
| 设置紧急用户 | 提前准备一个有 sudo 权限的备用账户 |
🎯 总结一句话:
“忘记 Linux 密码不是世界末日🌍 —— 只要你掌握了单用户模式、LiveCD 和阿里云救援技巧,就能轻松解锁任何系统!”
是否继续下一章?我将继续输出:
- 《Linux 用户与组管理详解》🔐
- 《Shell 命令进阶与脚本编写实战》🖥️
- 《Linux 日志分析与排错技巧》🔍
请告诉我你想深入的方向吧!🚀

浙公网安备 33010602011771号