GRUB密码用于锁定启动菜单以防止编辑内核参数或绕过系统登录,需用grub-mkpasswd-pbkdf2生成PBKDF2哈希并写入/etc/grub.d/00_header才生效,不替代全盘加密且不防UEFI或Live USB攻击。

GRUB密码不是给“系统登录”用的,而是锁住启动菜单本身——防止别人在开机时按e编辑内核参数、绕过密码直接进init=/bin/bash或修改ro为rw来重置用户密码。设置它确实能提高物理接触层面的安全性,但要注意:它不防UEFI固件层攻击,也不防Live USB重挂载硬盘,更不能替代全盘加密。
生成PBKDF2密码哈希必须用grub-mkpasswd-pbkdf2
Ubuntu 18.04+默认禁用明文密码,只认PBKDF2格式哈希。别手写、别用md5crypt或在线工具生成,否则update-grub会静默忽略。
- 运行
sudo grub-mkpasswd-pbkdf2,输入并确认密码(建议长度≥10,含大小写字母+数字) - 输出形如
grub.pbkdf2.sha512.10000.xxxxxxxxxx的整串哈希值——复制从grub.pbkdf2开始到末尾的全部内容,包括点号和所有字母数字 - 注意:该命令不读取
/etc/shadow,哈希与系统用户密码无关,可单独设置(比如设成grubadmin而非你的登录用户名)
把密码写进/etc/grub.d/00_header才生效
直接改/etc/default/grub没用。GRUB配置是拼接生成的,密码必须注入00_header这个脚本片段里,否则update-grub不会把它编译进grub.cfg。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 用
sudo vim /etc/grub.d/00_header,在文件末尾新增三行(注意空格和换行): catset superusers="yourname"password_pbkdf2 yourname grub.pbkdf2.sha512.10000.xxxxxxxxxxEOF- 其中
yourname是你要定义的GRUB管理员用户名(不一定是系统用户),第二行password_pbkdf2不能写成password,且用户名必须和superusers里一致
update-grub后必须重启才能验证
改完00_header不运行sudo update-grub,新密码永远不会加载;运行了不重启,GRUB仍读旧grub.cfg。常见错误是只改文件就去测试,结果发现按e还是直接进编辑模式。
- 执行
sudo update-grub,看到Generating grub configuration file ... done才算成功 - 重启后,在GRUB菜单界面按
c进入命令行,输入ls会提示Authentication required;按e编辑启动项也会弹出用户名+密码输入框 - 输错三次密码会退出到菜单,但不会锁死——GRUB本身无账户锁定机制
局部密码(仅保护特定菜单项)要改/etc/grub.d/10_linux
全局密码太重:每次进恢复模式、选不同内核都要输。如果只想锁住普通启动项,放行恢复模式,就得给菜单项加--unrestricted标记。
- 编辑
/etc/grub.d/10_linux,找到linux行附近类似menuentry的块,在menuentry开头那行末尾加上--unrestricted(注意空格) - 例如原行为:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-$boot_device_uuid' { - 改为:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-$boot_device_uuid' { - 再
sudo update-grub——这样只有普通启动项受密码保护,恢复模式、内存测试等仍可直接进
真正容易被忽略的是:GRUB密码无法阻止通过UEFI固件启动Live USB或禁用Secure Boot后加载自定义EFI程序。它只约束GRUB自身流程,物理机安全还得靠BIOS/UEFI密码+TPM+LUKS加密三者配合。

















