后发现并解决错误在 中grub2-set-password
,我现在可以在 Fedora 38 中为 grub2 设置密码保护。虽然此方法在尝试使用“e”编辑 grub 菜单项时要求输入密码,但它确实不是阻止普通用户启动非默认 grub 项。
超级用户被允许使用 GRUB 命令行、编辑菜单项以及执行任何菜单项。
问题出在最后一个操作上:阻止非默认菜单项在没有密码的情况下执行。在 Fedora 38 中,在对 grub 进行密码保护后,确实创建了一个超级用户组,但我仍然可以在没有密码的情况下执行非默认菜单项。
我可以看到,grub 菜单项的密码保护实际上已被 中的每个单独文件禁用/boot/loader/entries/
。每个文件都设置了grub-arg --unrestricted
,根据Grub 2.06 文档意味着对于谁可以启动该条目没有任何限制。我还发现讨论这表明 Fedora 修补了 grub 以将其与 Boot Loader 规范 (BLS) 相结合。这表明该问题可能与 Fedora 密切相关。有关 Fedora 中此功能的更多信息,请参阅Fedora 关于 BLS 的变更描述。
我还可以看到grub_arg --unrestricted
已经被硬编码到的新版本中grubby
,它只是 F38 中的一个 bash 脚本。
所以问题是:对于非默认的 grub 条目,如何正确覆盖grub_arg --unrestricted
硬编码到的grubby
?