如何用密码保护Ubuntu的Boot Loader

时间:2020-01-09 10:39:32  来源:igfitidea点击:

默认情况下,Ubuntus Grub引导加载程序允许任何人编辑引导条目或者使用其命令行模式。使用密码保护Secure Grub,没有人可以编辑它们,甚至在启动操作系统之前甚至需要输入密码。

Grub 2s的配置选项被拆分为多个文件,而不是单个menu.lst文件。由于使用了Grub 1,因此设置密码变得更加复杂。这些步骤适用于在Ubuntu 11.10中使用的Grub 1.99. 在将来的版本中,该过程可能会有所不同。

生成密码哈希

首先,从Ubuntus应用程序菜单启动一个终端。

现在,为Grubs配置文件生成一个模糊的密码。只需键入grub-mkpasswd-pbkdf2并按Enter。它会提示我们输入密码,并给我们一个长字符串。用鼠标选择字符串,右键单击它,然后选择"复制"以将其复制到剪贴板中以备后用。

从技术上讲,此步骤是可选的,我们可以在Grubs配置文件中以纯文本形式输入密码,但是此命令会对其进行混淆并提供额外的安全性。

设定密码

输入sudo nano /etc/grub.d/40_custom以在Nano文本编辑器中打开40_custom文件。在这里应该放置自己的自定义设置。如果将它们添加到其他位置,则它们可能会被较新版本的Grub覆盖。

向下滚动到文件底部,然后添加以下格式的密码条目:

set superusers=”name”

password_pbkdf2 name [long string from earlier]

在这里,我们使用先前的密码添加了一个名为bob的超级用户。我们还添加了一个名为jim的用户,该用户的纯文本密码不安全。

请注意,鲍勃是超级用户,而吉姆不是。有什么不同?超级用户可以编辑启动项并访问Grub命令行,而普通用户则不能。我们可以将特定的引导条目分配给普通用户以授予他们访问权限。

通过按Ctrl-O和Enter来保存文件,然后按Ctrl-X退出。我们必须先运行sudo update-grub命令,所做的更改才会生效。有关更多详细信息,请参见"激活更改"部分。

密码保护启动项

创建超级用户可以使我们受益匪浅。配置了超级用户后,Grub会自动阻止人们编辑启动项或者使用密码访问Grub命令行。

是否想用密码保护一个特定的启动项,以便没有提供密码就无法启动它?我们也可以做到这一点,尽管目前情况有些复杂。

首先,需要确定包含要修改的启动项的文件。键入sudo nano /etc/grub.d/,然后按Tab键查看可用文件列表。

假设我们要用密码保护我们的Linux系统。 Linux引导项是由10_linux文件生成的,因此请使用sudo nano /etc/grub.d/10_linux命令将其打开。编辑此文件时要小心!如果我们忘记了密码或者输入了错误的密码,除非我们从实时CD引导并首先修改Grub设置,否则我们将无法引导至Linux。

这是一个很长的文件,其中包含许多内容,因此请按Ctrl-W来搜索所需的行。在搜索提示下键入menuentry,然后按Enter。我们会看到一行以printf开头的行。

只需更改

printf “menuentry ‘${title}'

该行开头的位为:

printf “menuentry users name ‘${title}”

在这里,我们授予Jim访问我们的Linux启动项的权限。由于Bob是超级用户,因此他也具有访问权限。如果我们指定bob而不是jim,Jim将根本没有任何访问权限。

按Ctrl-O和Enter,然后按Ctrl-X保存并在修改后关闭文件。

随着时间的推移,这应该会变得更加容易,因为Grubs开发人员向grub-mkconfig命令添加了更多选项。

激活更改

我们必须先运行sudo update-grub命令,更改才会生效。此命令生成一个新的Grub配置文件。

如果我们使用密码保护默认的引导项,则在启动计算机时会看到登录提示。

如果将Grub设置为显示启动菜单,则无需输入超级用户密码就无法编辑启动项或者使用命令行模式。