我想防止用户在启动时修改Grub菜单(按e键进入编辑模式)并允许用户可以选择任何条目来启动。
我参考了一些这样的方法: https://superuser.com/questions/488275/grub-2-password-protection-in-debian
设置密码后,“选择启动项”和“按e键编辑”都需要密码。
设置密码并在每个条目中添加“--unrestricted”后,“选择条目启动”和“按e键编辑”都不需要密码。
我在 Debian 10 和 Debian 11 上尝试了这个。使用“--unrestricted”的正确方法是什么?
答案1
设置密码并在每个条目中添加“--unrestricted”后,“选择条目启动”和“按e键编辑”都不需要密码。
否。如果--unrestricted
在条目上设置,则仅启动无需输入用户名和密码即可允许。编辑菜单项 ( e) 和使用命令行 ( c) 仅限于超级用户列表中列出的用户。
来自GRUB手册(强调我的):
为了启用身份验证支持,“超级用户”环境变量必须设置为用户名列表,用空格、逗号、分号、竖线或与号分隔。超级用户可以使用 GRUB 命令行、编辑菜单项以及执行任何菜单项。如果设置了“超级用户”,则命令行的使用和菜单项的编辑将自动限制为超级用户。 将“超级用户”设置为空字符串可有效禁用对 CLI 的访问和菜单条目的编辑。
而且此外
可以允许其他用户执行特定的菜单条目通过使用“menuentry”命令的 --users 选项给出用户名列表(如上所述)(请参阅菜单项)。 如果 --unrestricted 选项用于菜单条目,则该条目不受限制。如果 --users 选项未用于菜单项,则只有超级用户才能使用它。
为了能够在没有密码的情况下启动所有条目,请设置set superusers=...
(空列表或用户名列表加上每个用户的一个密码条目)并将该--unrestricted
选项添加到所有菜单条目。