openSUSE 密码绕过指南
适用系统
- openSUSE Leap 15.x
- openSUSE Tumbleweed
- SUSE Linux Enterprise Server (SLES)
- SUSE Linux Enterprise Desktop (SLED)
openSUSE 特点
- 使用 GRUB2
- 文件系统通常为 Btrfs(默认)+ XFS(/home)
- 支持 Snapper 快照
- 使用 YaST 管理工具
- AppArmor 作为安全模块(非 SELinux)
方法一:init=/bin/bash(推荐)
步骤 1:编辑 GRUB
启动时在 GRUB 菜单按
e键找到
linux行:
1 | linux /boot/vmlinuz-5.14.21-150400 root=/dev/sda2 splash=silent quiet showopts |
- 在行末添加:
1 | init=/bin/bash |
- 按 F10 或 Ctrl+X 启动
步骤 2:修改密码
1 | # 重新挂载为读写 |
方法二:single 单用户模式
操作步骤
- GRUB 编辑,在
linux行末添加:
1 | single |
按 F10 启动
进入单用户模式,直接修改密码
SUSE 特别说明
- openSUSE/SLES 单用户模式通常直接给 root shell
- 无需额外密码验证
方法三:rescue 系统救援
使用安装介质
从 openSUSE 安装 DVD/USB 启动
选择 Rescue System
启动后登录(root,无密码或按提示)
挂载目标系统:
1 | # 查看分区 |
- chroot 并修改:
1 | mount --bind /dev /mnt/dev |
方法四:YaST 救援模式
从安装介质启动 YaST
使用安装介质启动
选择 Installation 但在早期步骤选择 Rescue System
YaST 会提供图形化的系统修复选项
选择修改 root 密码的选项
Btrfs 文件系统处理
默认 Btrfs 子卷布局
openSUSE 使用复杂的 Btrfs 子卷结构:
1 | @ / |
挂载命令
1 | # 默认挂载 |
直接修改 shadow
1 | mount /dev/sda2 /mnt |
Snapper 快照
openSUSE 自动创建快照
如果系统之前工作正常,可以回滚到快照:
GRUB 菜单选择 Start bootloader from a read-only snapshot
选择一个正常的快照启动
启动后执行回滚:
1 | snapper rollback |
查看快照
1 | snapper list |
LVM 配置(如果使用)
1 | # 激活 LVM |
直接修改 shadow 文件
清空密码
1 | # 修改前 |
生成密码哈希
1 | openssl passwd -6 -salt randomsalt mypassword |
AppArmor
openSUSE 使用 AppArmor 而非 SELinux:
- 密码修改通常不受 AppArmor 影响
- 无需类似
.autorelabel的操作
如需临时禁用
GRUB 添加:
1 | apparmor=0 |
SLES 特别说明
SUSE Linux Enterprise Server
- 方法与 openSUSE 相同
- 可能有注册/订阅相关配置
- 企业环境可能有额外安全措施
集成的 SMT/RMT 服务器
如果无法访问 SUSE 更新服务器,编辑:
1 | /etc/zypp/repos.d/ |
常见问题
Q: Btrfs 只读快照无法修改?
A: 确保不是从只读快照启动:
1 | btrfs property get -ts / |
如果是只读,需要正常启动或使用 Live 环境。
Q: 找不到 shadow 文件?
A: 检查 Btrfs 子卷结构,可能在 /@/etc/shadow。
Q: 修改后无法启动?
A: 尝试从 Snapper 快照恢复,或检查 Btrfs 子卷挂载。
Q: grub 菜单被跳过?
A: 启动时按住 Esc 或 Shift 键。
适用系统:openSUSE Leap/Tumbleweed, SLES, SLED
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 CodeHut!
评论
