如何使用密码保护Grub菜单

如何从ro recovery nomodeset命令密码保护Grub菜单。 除非你有密码才能对菜单进行更改以尝试进入recovery.grub,否则我希望它没有人

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... 

当您输入密码时,终端中不会显示任何字符,这是为了防止人们看到您的肩膀等。现在,使用Ctrl + Shift + C复制整个哈希值。

保护配置,控制台..

跑:

 sudo nano /etc/grub.d/40_custom 

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

 set superusers="username" password_pbkdf2 username hash 

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

 sudo update-grub 

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

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

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

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

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