插件窝 干货文章 grub密码如何理解

grub密码如何理解

密码 GRUB 加密 菜单 173    来源:    2025-04-24

GRUB密码是用于保护GRUB(Grand Unified Bootloader)引导加载程序的安全机制,主要分为两类:菜单密码编辑密码。以下是详细解释:


1. GRUB密码的作用

  • 防止未授权修改:阻止用户在启动时通过GRUB菜单修改内核参数(如进入单用户模式、修改init等)。
  • 保护系统安全:避免攻击者通过物理接触机器绕过认证获取root权限。

2. 密码类型

类型 功能
菜单密码 用户必须输入密码才能选择启动项(但可能仍能查看菜单)。
编辑密码 用户必须输入密码才能编辑GRUB菜单项(如按e修改启动参数)。

3. 密码加密方式

GRUB密码通常使用PBKDF2加密(推荐)或明文(不安全)。
示例加密命令(通过grub-mkpasswd-pbkdf2生成):

grub-mkpasswd-pbkdf2
# 输入密码后,输出类似:
grub.pbkdf2.sha512.10000.9A89E6...

4. 配置方法(以GRUB2为例)

步骤1:生成加密密码

sudo grub-mkpasswd-pbkdf2
# 记录输出的加密字符串

步骤2:编辑GRUB配置文件

sudo nano /etc/grub.d/40_custom

添加以下内容(替换[加密密码]为实际值):

set superusers="root"  # 定义超级用户
password_pbkdf2 root [加密密码]  # 设置密码

步骤3:更新GRUB

sudo update-grub

5. 保护特定菜单项(可选)

/etc/grub.d/40_custom中为特定菜单项添加--unrestricted(免密码)或--users(指定用户):

menuentry "Ubuntu" --unrestricted { ... }
menuentry "Recovery" --users root { ... }

6. 注意事项

  • 物理安全:若攻击者能访问BIOS/UEFI,可能重置GRUB密码。
  • 密码遗忘:需通过Live CD或救援模式重置(需物理接触机器)。
  • 兼容性:部分旧系统可能使用明文密码(password命令而非password_pbkdf2)。

7. 验证是否生效

重启后尝试编辑GRUB菜单(按e),系统应提示输入密码。


通过以上步骤,您可以为GRUB设置安全的密码保护,防止未授权的启动参数修改。如果需要更细粒度的控制,可以结合--users--unrestricted进一步配置。