Ограничение возможности редактирования пунктов меню grub2 «на лету»

Ограничение возможности редактирования пунктов меню grub2 «на лету»

Есть ли способ отключить эту e' to edit commands before bootingопцию в меню GRUB2?

Я хочу, чтобы все пункты меню были доступны всем пользователям (поэтому ограничение их паролем не представляется возможным), но при этом ограничить возможность пользователей изменять указанные пункты меню.

Это возможно?

решение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. Вставьте --unrestrictedпосле ${CLASS}в строке echo "menuentry '$(title "$os" [...]в функции linux_entry в /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. Вставьте --unrestrictedпосле ${CLASS}строки ´echo "menuentry '$(echo "$os" [...] in function linux_entry in/etc/grub.d/10_linux`, например

    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, выполнив команду

update-grub

решение2

Извики:

Если включена какая-либо форма защиты паролем GRUB 2, для получения доступа к командной строке GRUB 2 и режимам редактирования меню потребуются имя и пароль суперпользователя.

Похоже, это означает, что вам нужно разрешить загрузку непривилегированным пользователям:

Меню GRUB 2 может содержать защищенные и незащищенные элементы. Формат защиты элемента меню заключается в добавлении информации о доступе пользователя в строку заголовка menuentry.

Наличие --unrestricted отключает защиту паролем.

Связанный контент