grub启动菜单加密码是防止本地提权最有效的一环,通过设置superusers和password_pbkdf2锁定编辑入口,配合禁用bios快捷键、物理访问控制、selinux enforcing及配置文件权限加固,可全面阻断单用户模式等绕过认证手段。

直接给 GRUB 启动菜单加密码,是防止本地提权最有效的一环。单用户模式本身不验证 root 密码,只要能进编辑界面,就能绕过所有认证重置密码。所以核心不是“禁用单用户”,而是“锁住进入编辑的入口”。
修改 GRUB 配置文件添加管理员密码
主流发行版(RHEL/CentOS 7+、Rocky/AlmaLinux、Fedora)使用 /etc/grub.d/40_custom 或 /boot/grub2/grub.cfg(不建议直接改后者)。推荐方式是:
- 编辑 /etc/grub.d/40_custom,在末尾添加如下内容:
set superusers="admin" password_pbkdf2 admin grub.pbkdf2.sha512.10000.6A8...(你的密文)
- 其中 admin 是你自定义的用户名,后面密文需用
grub2-mkpasswd-pbkdf2命令生成(输入两次密码后复制输出) - 保存后运行:
grub2-mkconfig -o /boot/grub2/grub.cfg生效配置
密码生效后的实际效果
重启进 GRUB 菜单时:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 按 e 编辑启动项 → 系统提示
Enter username:,输入admin - 再提示
Enter password:,输入对应密码 - 验证通过后才允许编辑 kernel 行;否则 e 键无响应,b 键也无法启动修改项
- 单用户模式(如加
rd.break或init=/bin/sh)被完全阻断在第一步
配套加固建议
仅靠 GRUB 密码还不够,建议同步做这几件事:
- 禁用 BIOS/UEFI 快捷键启动:进固件设置,关闭 F12 Boot Menu、禁用 USB 启动、设置 BIOS 管理员密码
- 物理访问控制:服务器机房上锁,避免他人直接插 U 盘或接显示器操作
-
SELinux 保持 enforcing:防止挂载后绕过策略修改关键文件(如
/etc/shadow) -
定期检查 GRUB 配置权限:确保
/boot/grub2/grub.cfg属主为 root:root,权限为0600
这套组合能挡住绝大多数本地提权尝试。云服务器虽不依赖此法(平台提供重置能力),但物理机或私有云环境必须部署。










