Есть ли способ отключить опцию e' to edit commands before booting
в меню GRUB2?
Я хочу, чтобы все пункты меню были доступны для всех пользователей (поэтому ограничивать их паролем - не вариант), но ограничить возможность пользователи могут изменить указанные пункты меню.
Это возможно?
От Wiki:
, Если какая-либо форма защиты паролем GRUB 2 включена, имя и пароль суперпользователя требуется, чтобы получать доступ к командной строке GRUB 2 и режимам редактирования меню.
Это, кажется, означает, что необходимо позволить unpriviledged пользователям загружаться:
меню GRUB 2 может содержать защищенные и незащищенные объекты. Формат для защиты пункта меню состоит из добавления пользовательской информации о доступе к menuentry строке заголовка.
присутствие - неограниченный отключает защиту паролем.
В 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
и
Вставьте --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/"
Вставьте --unrestricted
после ${CLASS}
в строке ´echo "menuentry '$(echo "$os" [...]в функции linux_entry в
/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