如何用密码保护 Grub 菜单

Ran*_*ert 11 grub2

如何从ro recovery nomodeset命令密码保护 Grub 菜单。我想要它到没有人的地方,除非你有密码来更改菜单以尝试进入 recovery.grub

Set*_*eth 13

Grub 允许您使用密码保护其配置和控制台,以及单个操作系统条目。请注意,这不会阻止敬业的个人,尤其是那些知道自己在做什么的人。但我假设你知道这一点。让我们开始吧。

生成密码哈希..

您可以以纯文本形式存储您的 grub 密码,但这完全不安全,任何有权访问您帐户的人都可以很快弄清楚。为了防止这种情况,我们使用grub-mkpasswd-pbkdf2命令散列密码,如下所示:

user@host~ % grub-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.63553D205CF6E...  
Run Code Online (Sandbox Code Playgroud)

当你输入你的密码没有字符会在终端显示,这是为了防止人们寻找你的肩膀上,等等。现在,复制您的哈希值的整体上以Ctrl+ Shift+ C

保护配置,控制台..

跑:

sudo nano /etc/grub.d/40_custom  
Run Code Online (Sandbox Code Playgroud)

这将40_custom在 grub 的配置目录中创建一个名为的新配置文件。现在添加以下行:

set superusers="username"  
password_pbkdf2 username hash  
Run Code Online (Sandbox Code Playgroud)

username您选择的用户名在哪里,hash是我们在最后一个命令中生成的哈希值。按Ctrl+ O,然后Ctrl+X保存并退出。跑:

sudo update-grub  
Run Code Online (Sandbox Code Playgroud)

完成更改。现在,当有人试图编辑 grub 配置或访问 grub 控制台时,它会提示他们输入用户名和密码。

密码保护操作系统条目..

目前我能找到的唯一方法是/boot/grub/grub.cfg手动编辑。这只是暂时的,因为任何新的内核更新都会重写这个文件,你的密码将消失(请注意,这不会影响我们上面设置的控制台/编辑密码)。到目前为止我发现的所有其他方法都非常过时,我无法再让它们工作。

我已经问过 grub 邮件列表是否有更新的方法,我会在发现后立即编辑此答案。

  • 在此操作后,Grub 2.0+ 要求输入密码以启动。这是因为默认情况下所有条目现在都被“限制”。要在没有密码的情况下启动 [您需要在必需的启动项中添加“--unrestricted”](http://daniel-lange.com/archives/75-Securing-the-grub-boot-loader.html)。 (3认同)

NZD*_*NZD 6

GRUB 手册有一节是关于安全的。这将告诉您如何用密码保护 GRUB 引导菜单以限制对特定操作或引导变体的访问。它包含一个小例子。

  • 如果示例很小,您可以添加到您的答案中 (2认同)
  • @rpax:赛斯的回答已经包含一个例子。在我发布我的答案后,他添加了他的答案。 (2认同)