Ограничение оперативного редактирования пунктов меню grub2

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

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

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

2
задан 2 June 2015 в 15:02

2 ответа

От Wiki:

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

Это, кажется, означает, что необходимо позволить unpriviledged пользователям загружаться:

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

присутствие - неограниченный отключает защиту паролем.

0
ответ дан 2 June 2015 в 15:02

В 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" [...]в функции 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
1
ответ дан 23 March 2020 в 06:48

Другие вопросы по тегам:

Похожие вопросы: