如何使用密码保护Grub菜单


9

如何从ro recovery nomodeset命令中密码保护Grub菜单。我希望它到没有人的地方,除非您具有密码才能更改菜单​​以尝试进入Recovery.grub


还不太清楚。您是否要使用密码保护启动功能或编辑grub配置/进入grub控制台的功能?
塞斯

最好是两个,你可以请告诉我详细的命令,我有点新的Linux
Randol阿尔伯特

有一个选项可以禁用grub中的恢复模式,以及不显示grub(即直接引导到您选择的特定操作系统,或者如果只有一个操作系统,则立即引导至该操作系统)。您对此感兴趣吗?让我知道,如果您需要的话,我会将其发布为答案
Sergiy Kolodyazhnyy 2015年

Answers:


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

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

保护配置,控制台..

跑:

sudo nano /etc/grub.d/40_custom  

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

set superusers="username"  
password_pbkdf2 username hash  

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

sudo update-grub  

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

密码保护操作系统条目。

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

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


3
进行此操作后,Grub 2.0+要求启动密码。这是因为默认情况下所有条目现在都处于“受限”状态。要在不使用密码的情况下进行引导,您需要在所需的引导项中添加“ --unrestricted”
拉兹

6

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


1
如果示例很小,则可以添加答案
rpax

2
@rpax:Seth的答案已经包含一个示例。我发布我的消息后,他补充了他的答案。
NZD 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.