《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 日志分析与排错技巧》🔍
请告诉我你想深入的方向吧!🚀