简单的方法
在一些 Linux 发行版中,例如 Rocky Linux、RHEL 或者 CentOS 8.
GRUB 引导加载程序附带了一个方便的命令来设置引导菜单的密码。
此命令为默认 root 用户设置密码。
现在执行它并设置一个强密码。
# grub2-setpassword Enter password: Confirm password:
重新启动 Linux 服务器以验证新设置。
按“e”编辑菜单项。
GRUB 现在要求提供登录凭据。
输入正确的登录名/密码。
提供有效凭据后,我们现在可以编辑 GRUB 菜单命令。
同样,如果要删除 GRUB 密码,则使用 grub2-password 命令设置该密码。
我们只需删除以下文件即可。
# rm -f /boot/grub2/user.cfg # rm -f /boot/efi/EFI/redhat/user.cfg
对于基于 BIOS 的系统,user.cfg 文件位于 /boot/grub2/ 目录中,而在基于 UEFI 的系统中,我们可以在 /boot/efi/EFI/redhat/ 目录中找到它。
因此,从两个位置删除它是安全的。
添加提示
在这里,当用户尝试编辑菜单时,GRUB 引导加载程序将要求登录凭据。
但是,在某些情况下,我们可能需要在尝试启动 Linux 操作系统时设置密码。
在我们喜欢的文本编辑器中编辑 /etc/grub.d/10_linux。
# vi /etc/grub.d/10_linux
在此文件中找到以下行。
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
并删除 --unrestricted 选项。
CLASS="--class gnu-linux --class gnu --class os"
重新生成 GRUB 配置文件并重新启动。
现在,如果我们尝试引导 Linux 操作系统,GRUB 会要求我们输入密码。
请注意,如果我们忘记了此密码,则必须恢复 GRUB 引导加载程序。
高级方法
如果我们想为 GRUB 菜单创建多个登录凭据,那么简单的方法对我们不起作用。
因此,我们必须使用以下方法在启动菜单上设置密码。
并且此方法适用于所有使用 GRUB 引导加载程序的 Linux 发行版。
执行以下命令为用户生成密码哈希。
# grub2-mkpasswd-pbkdf2 Enter password: Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.6CE9F4DAF8A6BB2823882EEF3A6CF1792523E4785BD891BF61597DE59BAEBF50787642196FDDC018258C7C00FBC105FAD3F7437936DCD0C72F925A101BADE2CE.EBD8D141809B5793651F198C91560FAB2A522683FB9E4BC95BE961D19A6A3E8F46225B7CF68A7F79BAAB19E99500FA6DC7CC6DB331026733670722D9FD40FDD4 # grub2-mkpasswd-pbkdf2 Enter password: Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.751F468CC621AF04393BD80D4C1B4C8D5D5B990A9CF6E2AEB7B1424ECE4ED2C4C9FD47FFE33156C11EADA59EFC7B16DBBED3F3A368468DC0A1FDEAEDEC2AB43D.37D24383BB42E891068090A0EF6E60B43F1C800F9A82F88179F7535343EEBAD08326BD1CBD3337ED5E712291B3DBDBB2341DF58E8F012F3D7E7CD10DE4F0B1A4
使用我们喜欢的文本编辑器编辑 /etc/grub.d/00_header。
# vi /etc/grub.d/00_header
在此文件的末尾添加以下代码行。
cat << EOF set superusers="grubadmin,gruboper" password_pbkdf2 grubadmin grub.pbkdf2.sha512.10000.6CE9F4DAF8A6BB2823882EEF3A6CF1792523E4785BD891BF61597DE59BAEBF50787642196FDDC018258C7C00FBC105FAD3F7437936DCD0C72F925A101BADE2CE.EBD8D141809B5793651F198C91560FAB2A522683FB9E4BC95BE961D19A6A3E8F46225B7CF68A7F79BAAB19E99500FA6DC7CC6DB331026733670722D9FD40FDD4 password_pbkdf2 gruboper grub.pbkdf2.sha512.10000.751F468CC621AF04393BD80D4C1B4C8D5D5B990A9CF6E2AEB7B1424ECE4ED2C4C9FD47FFE33156C11EADA59EFC7B16DBBED3F3A368468DC0A1FDEAEDEC2AB43D.37D24383BB42E891068090A0EF6E60B43F1C800F9A82F88179F7535343EEBAD08326BD1CBD3337ED5E712291B3DBDBB2341DF58E8F012F3D7E7CD10DE4F0B1A4 EOF
通过执行以下命令重建 GRUB 配置文件。
# grub2-mkconfig > /boot/grub2/grub.cfg Generating grub configuration file ... done
以上命令在某些 Linux 发行版(例如 Debian)上可能不可用,我们可以其中执行以下命令。
# update-grub
同样,如果要从引导菜单中删除密码,可以从 /etc/grub.d/00_header 中删除此代码并重新生成 GRUB 配置。
本文将向我们展示如何在 Linux 服务器上为 GRUB Bootloader 设置密码。