Ubuntu / Debian 密码绕过指南
适用系统
- Ubuntu 14.04 / 16.04 / 18.04 / 20.04 / 22.04 / 24.04
- Debian 8 / 9 / 10 / 11 / 12
- Linux Mint
- Kali Linux(另有专门文档)
- 其他 Debian 衍生版
方法一:init=/bin/bash(推荐)
步骤 1:进入 GRUB 编辑模式
启动时长按 Shift 键(BIOS)或按 Esc 键(UEFI)显示 GRUB 菜单
选择默认启动项,按
e键编辑找到以
linux开头的行:
1 | linux /boot/vmlinuz-5.4.0-generic root=UUID=xxxx ro quiet splash |
- 将
ro改为rw,并在行末添加:
1 | init=/bin/bash |
修改后:
1 | linux /boot/vmlinuz-5.4.0-generic root=UUID=xxxx rw quiet splash init=/bin/bash |
- 按 Ctrl+X 或 F10 启动
步骤 2:修改密码
进入 bash 后:
1 | # 检查根分区是否可写(应该已经是 rw) |
Ubuntu 特别说明
- Ubuntu 默认禁用 root 账户,首个创建的用户有 sudo 权限
- 建议同时修改普通用户密码:
passwd <username> - Ubuntu 不使用 SELinux,无需
.autorelabel
方法二:recovery mode 恢复模式
适用版本:Ubuntu 所有版本
步骤
启动时进入 GRUB 菜单
选择 Advanced options for Ubuntu
选择带 (recovery mode) 的内核版本
在恢复菜单中选择 root - Drop to root shell prompt
如果提示只读,先重新挂载:
1 | mount -o remount,rw / |
- 修改密码:
1 | passwd root |
- 输入
reboot重启
注意事项
- 某些版本的 recovery mode 可能仍需要密码
- 如果需要密码,使用方法一
方法三:single 单用户模式
操作步骤
- GRUB 编辑模式下,在
linux行末添加:
1 | single |
或
1 | 1 |
删除
quiet splash(可选,方便查看启动信息)按 Ctrl+X 启动
进入单用户模式后修改密码
Debian/Ubuntu 单用户模式差异
- Debian:直接进入 root shell
- Ubuntu:可能进入恢复菜单,选择 root shell
方法四:使用 Live CD/USB
步骤 1:从 Live 环境启动
使用 Ubuntu/Debian Live USB 启动
选择 Try Ubuntu 进入桌面环境
步骤 2:挂载目标系统
1 | # 查看分区 |
步骤 3:chroot 并修改密码
1 | # 挂载必要的虚拟文件系统 |
方法五:直接修改 shadow 文件
通过 Live 环境或外部挂载
挂载后编辑 shadow
1 | sudo mount /dev/sda1 /mnt |
清空密码
1 | # 修改前 |
生成已知密码哈希
1 | # Debian/Ubuntu 使用 SHA-512 |
修改普通用户密码
Ubuntu 首个用户通常在 admin/sudo 组:
1 | username:$6$salt$hash...:18000:0:99999:7::: |
同样可以清空或替换哈希。
特殊情况处理
加密分区 (LUKS)
Ubuntu/Debian 可能使用全盘加密:
1 | # 解锁加密分区 |
注意:如果不知道 LUKS 密码,无法通过此方法绕过
AppArmor
Debian/Ubuntu 使用 AppArmor 而非 SELinux:
- 通常不影响密码修改
- 无需类似
.autorelabel的操作
systemd 相关
较新版本使用 systemd,可尝试:
1 | systemd.unit=rescue.target |
或
1 | systemd.unit=emergency.target |
添加到 GRUB 启动参数。
常见分区方案
标准分区
1 | /dev/sda1 /boot ext4 |
LVM 分区
1 | /dev/sda1 /boot ext4 |
UEFI + LVM
1 | /dev/sda1 /boot/efi vfat (ESP) |
GRUB 菜单不显示
Ubuntu 默认隐藏 GRUB
方法 1:启动时按键
- BIOS 模式:启动时长按 Shift
- UEFI 模式:启动时按 Esc
方法 2:通过 Live 环境修改
1 | sudo mount /dev/sda1 /mnt |
修改:
1 | GRUB_TIMEOUT_STYLE=menu |
更新 GRUB(可选):
1 | sudo chroot /mnt |
常见问题
Q: 按 Shift 无法显示 GRUB?
A: 尝试连续快速按 Shift 或 Esc,或使用方法四 Live CD。
Q: 进入 bash 后键盘无响应?
A: 可能是 USB 键盘驱动问题,尝试 PS/2 键盘或使用 Live CD 方法。
Q: passwd 提示 “password unchanged”?
A: 密码不符合复杂度要求,但 root 权限下可以强制设置简单密码。
Q: Ubuntu 的 root 账户如何启用?
A:
1 | passwd root # 设置 root 密码 |
适用系统:Ubuntu 14.04+, Debian 8+, Linux Mint, Pop!_OS, elementary OS
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 CodeHut!
评论
