必须为GRUB设置加密验证以防止物理接触者通过e键修改内核参数或注入init=/bin/bash获取root权限;操作包括用grub-mkpasswd-pbkdf2生成强哈希密码,写入40_custom配置superusers和password_pbkdf2,再执行update-grub并重启生效。

银河麒麟系统需在GRUB菜单层面阻止他人按 e 或 c 键篡改内核参数、注入 init=/bin/bash 获取 root 权限,该保护独立于用户登录密码,必须通过手动注入加密哈希并更新引导配置实现。
生成GRUB专用加密密码
打开终端,以 root 身份执行:
grub-mkpasswd-pbkdf2
系统会提示输入并确认新密码。此时屏幕完全不显示任何字符(包括星号),输完直接回车即可。这一步若误按退格或复制粘贴失败,会导致后续全部失效。
命令输出形如 【grub.pbkdf2.sha512.10000.8A9F2E...(一长串不可截断的字符)】 的完整字符串,请立即全选复制——漏掉开头“grub.”或末尾任意一位,GRUB 验证都会拒绝通过。
若提示命令未找到,改用 grub2-mkpasswd-pbkdf2,二者功能一致。
写入超级用户认证配置
方法一:编辑 40_custom 文件(推荐,不影响其他 GRUB 脚本)
先备份原始配置,防止误操作导致无法启动:
cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
用 nano 编辑自定义配置文件:
sudo nano /etc/grub.d/40_custom
在文件最末尾另起两行,严格按以下格式粘贴(注意:password_pbkdf2 和加密串之间不能有任何空格,用户名必须为 root):
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.8A9F2E...
⚠️ 注意:加密串必须原样粘贴,不得加引号、不得换行、不得删减——哪怕多一个空格或少一个点,重启后按 e 键也不会弹出验证框。
更新配置并验证生效
第一步:保存 nano 编辑内容(Ctrl+O → 回车),退出(Ctrl+X);
第二步:执行更新命令生成新 grub.cfg:
sudo update-grub
第三步:立即重启系统:
reboot
重启后,在 GRUB 菜单界面出现时,立刻按 e 键或 c 键——此时将弹出用户名输入框,输入 root,再输入你设定的密码。输错三次会短暂冻结界面,这是正常防护行为。

















