![GRUB2 密码编辑保护](https://linux22.com/image/1178116/GRUB2%20%E5%AF%86%E7%A0%81%E7%BC%96%E8%BE%91%E4%BF%9D%E6%8A%A4.png)
如果我使用密码保护 GRUB2,它将被写入 grub2.cgf 文件中。
如果潜在用户安装该驱动器并对其进行更改,则有可能更改 root 密码并修改系统。
具体来说,如果你在另一台机器上挂载该磁盘,并手动粘贴在另一台机器上生成的 GRUB2 密码,下次重启时,你就可以使用新密码编辑 GRUB。
有办法保护它吗?我试过使用 luks,但我不想每次启动系统时都输入密码。
答案1
如果是为了使用密码保护 Grub2 引导程序不被修改。
如何使用密码保护 Grub2 引导加载程序:
首先我们生成一个加密密码。
sudo grub-mkpasswd-pbkdf2
我们将得到类似如下的输出:
Enter password:
Enter password:
Reenter password:
Your PBKDF2 is grub.pbkdf2.sha512.10000.743275C021122091A9EF4602AB6EF14C22F8B7AC6C22A0A90C0283C0EBC8935E6AC255C49AD6FBC33FC063BBF7AB6A7A3523BBD78C20CCA94F6063CD201C5B03.8968F047042AE0C1264F7CB657601C0E95A1E55555C097954FBA18FAC80A1F30B06ADF651F9DC41F55C6EEA74440C11134440B0E3C84CDD5C5A2C7BA09D99995
现在需要编辑文件:/etc/grub.d/00_header
sudo nano /etc/grub.d/00_header
在文件末尾,必须放置以下几行,注意生成的用户名和密码保持在一行上。
cat << EOF
set superusers="Giuseppe"
password_pbkdf2 Giuseppe grub.pbkdf2.sha512.10000.743275C021122091A9EF4602AB6EF14C22F8B7AC6C22A0A90C0283C0EBC8935E6AC255C49AD6FBC33FC063BBF7AB6A7A3523BBD78C20CCA94F6063CD201C5B03.8968F047042AE0C1264F7CB657601C0E95A1E55555C097954FBA18FAC80A1F30B06ADF651F9DC41F55C6EEA74440C11134440B0E3C84CDD5C5A2C7BA09D99995
EOF
现在需要编辑文件 /etc/grub.d/10_linux
sudo nano /etc/grub.d/10_linux
在此文件中,您需要找到 linux-entry() 函数。
它位于大约 64 号线。
在这个函数中,大约在第 75 行我们放置了 printf 命令。
在这个命令中,需要引入--user选项,后跟设置超级用户的用户名。
在生成的每个菜单中完成此操作后,将添加 --users 选项,保护启动菜单中安装的不同内核的所有条目。
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
-
-
-
fi
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
cat << EOF
recordfail
修改后的线路
printf "menuentry --users Giuseppe'${title}' ${CLASS} {\n" "${os}" "${version}"
最后,您只需更新 Grub2 即可使更改生效。
sudo update-grub