如何设置 Grub 密码仅用于访问 grub 菜单?

如何设置 Grub 密码仅用于访问 grub 菜单?

需要帮助配置 Grub 密码以仅用于访问 Grub 菜单。我不想在每次重启时输入用户名和密码。

我已经按照以下步骤配置了 Grub 用户 ID 和密码此链接并且它可以按预期工作,唯一的挑战是,我必须在每次重启时输入密码,但我不想这样做。

另外,我也尝试阅读了这篇文章Ubuntu 文档因为我认为它对我所寻找的东西有一个解决方案,但不幸的是,我发现它太难理解了。

我可以在 20.04 LTS 上进行设置吗?所以请大家帮忙!

提前致谢!注意安全!:)

答案1

对于所有地方的默认密码,您可以创建一个文件/etc/grub.d/00_before_header

这个名字00_before_header很重要,因为它将00_header按字母顺序排列。

#!/bin/sh
set -e
cat <<EOF
set superusers="admin"
password admin password
export superusers    
EOF

你必须跑chmod +x /etc/grub.d/00_before_header

下面的补丁将修改名为 的选项Ubuntu为无密码。

  • 将修改/etc/grub.d/10_linux
  • 运行升级-grub
  • --unrestricted检查你是否有包含以下选项的菜单项/boot/grub/grub.cfg

补丁/etc/grub.d/10_linux

--- 10_linux.orig   2020-05-16 05:26:00.107936462 +0000
+++ 10_linux    2020-05-16 05:26:40.040071516 +0000
@@ -190,7 +190,12 @@
       fi
       echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
   else
+      OLD_CLASS="$CLASS" 
+      if [ "$(echo "$os" | grub_quote)" = "Ubuntu" ]; then
+          CLASS="$CLASS  --unrestricted" 
+      fi
       echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
+      CLASS="$OLD_CLASS" 
   fi      
   if [ "$quick_boot" = 1 ]; then
       echo "   recordfail" | sed "s/^/$submenu_indentation/"

附言:此解决方案适用于 Ubuntu 20.04

PS2:补丁 =>https://en.wikipedia.org/wiki/Patch_%28Unix%29

PS3:补丁格式 =>https://stackoverflow.com/questions/987372/what-is-the-format-of-a-patch-file

相关内容