Fedora 密码绕过指南
适用系统
- Fedora Workstation / Server 所有版本
- Fedora CoreOS(特殊,见下文)
- Fedora Silverblue(特殊,见下文)
Fedora 特点
- 使用 GRUB2
- 默认启用 SELinux(enforcing 模式)
- 使用 systemd
- 文件系统通常为 Btrfs(F33+)或 ext4
- 可能使用 LVM
方法一:rd.break(推荐)
与 RHEL/CentOS 相同的方法
步骤 1:编辑 GRUB
启动时按
e编辑启动项找到
linux行(Fedora 较新版本不带16后缀):
1 | linux ($root)/vmlinuz-6.0.0-0.rc1.fc38 root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet |
- 在行末添加:
1 | rd.break |
- 按 Ctrl+X 启动
步骤 2:修改密码
1 | # 重新挂载 |
方法二:init=/bin/bash
操作步骤
- GRUB 编辑,
linux行末添加:
1 | init=/bin/bash |
按 Ctrl+X 启动
进入 bash 后:
1 | # 挂载根分区 |
方法三:rescue.target
使用 systemd 救援模式
- GRUB 编辑,
linux行末添加:
1 | systemd.unit=rescue.target |
启动后进入救援模式
可能需要输入 root 密码(如果知道)
如果需要绕过密码,使用
rd.break或init=/bin/bash
方法四:emergency.target
更低级别的紧急模式:
1 | systemd.unit=emergency.target |
方法五:Fedora Live USB
步骤
使用 Fedora Live USB 启动
挂载目标系统:
1 | # 查看分区 |
- chroot 并修改:
1 | sudo mount --bind /dev /mnt/dev |
Btrfs 文件系统(Fedora 33+)
默认子卷布局
1 | fedora-root |
挂载命令
1 | # 挂载默认子卷 |
修改 shadow 文件
1 | mount /dev/mapper/fedora-root /mnt |
SELinux 处理
必须执行重标记
Fedora 强制启用 SELinux,修改 shadow 后必须:
1 | touch /.autorelabel |
临时禁用 SELinux 启动
GRUB 添加:
1 | selinux=0 |
或
1 | enforcing=0 |
永久禁用(不推荐)
编辑 /etc/selinux/config:
1 | SELINUX=disabled |
LVM 配置
典型 Fedora LVM 布局
1 | /dev/sda1 /boot ext4/xfs |
手动激活 LVM
1 | pvscan |
Fedora CoreOS / Silverblue
特殊系统说明
这些是不可变系统,传统方法可能不适用:
Fedora CoreOS:
- 使用 Ignition 配置
- 需要通过 Ignition 配置修改密码
- 或使用 Live 环境修改
Fedora Silverblue:
- 使用 rpm-ostree
- 根分区只读
- 需要特殊处理
CoreOS 密码重置
- 准备新的 Ignition 配置文件
- 或通过 Live 环境挂载修改
常见问题
Q: Btrfs 挂载后看不到文件?
A: 检查是否需要指定子卷:
1 | btrfs subvolume list /mnt |
Q: 首次启动非常慢?
A: 正常现象,SELinux 正在重新标记所有文件。
Q: passwd 命令提示错误?
A: 确保已经 chroot /sysroot 且文件系统可写。
Q: 使用 UEFI 找不到 linux 行?
A: UEFI 模式下行名相同,查找 linux 开头的行。
适用系统:Fedora Workstation/Server 所有版本
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 CodeHut!
评论
