限制 grub2 選單項目的即時編輯

限制 grub2 選單項目的即時編輯

有沒有辦法停用e' to edit commands before bootingGRUB2 選單中的選項?

我希望所有使用者都可以使用所有選單項目(因此密碼限制它們不是一個選項),但限制使用者更改所述選單項目的能力。

那可能嗎?

答案1

在 Ubuntu 18.04 上,我添加後它開始工作

GRUB_DISABLE_SUBMENU=y

到 /etc/default/grub.所以基本上步驟是:

產生密碼:

grub-mkpasswd-pbkdf2

將以下行複製到 /etc/grub.d/40_custom 的末尾,並將密碼替換為上面輸出中的密碼。這將完全用密碼保護 grub:

set superusers="grubadm"
password_pbkdf2 grubadm grub.pbkdf2.sha512.10000.D23193A0BE80A8D94606716D2DBE18C1AC77563FD87B7DA41824467E9393EBFFAF8B909DFAD83293325016EF6DA112EBAC819B3196F2D9F764F56E037E4EB86A.78AAD14971909106B4BE80AB6BF704804E67D5486966D9A85289E5449F08BD54E55B83B28CF0A4F2B4D486F2136439B7786135B8D59C611BF9DE2CDE965DB791

允許選擇不同核心版本的啟動項。編輯/etc/grub.d/10_linux

  1. 在函數 linux_entry in 的行--unrestricted之後插入,例如${CLASS}echo "menuentry '$(title "$os" [...]/etc/grub.d/10_linux

    echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} --unrestricted \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
    
  2. 在行 ´echo "menuentry '$(echo "$os" [...] /etc/grub.d/10_linux`--unrestricted後面插入 ,例如${CLASS}in function linux_entry in

    echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} --unrestricted \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
    

將以下行新增至 /etc/default/grub

GRUB_DISABLE_SUBMENU=y

透過執行重建 grub conf 文件

update-grub

答案2

來自維基百科:

如果啟用任何形式的 GRUB 2 密碼保護,則需要超級使用者的名稱和密碼才能存取 GRUB 2 命令列和功能表編輯模式。

這似乎意味著您需要允許非特權用戶啟動:

GRUB 2 選單可以包含受保護和不受保護的項目。保護選單項目的格式包括將使用者存取資訊新增至選單項目標題行。

--unrestricted 的存在會停用密碼保護。

相關內容