Grub2: установка пароля в версии 2.02 ~ beta2-9ubuntu1

5

Я использую ubuntu 14.04 , а версия Grub - 2.02~beta2-9ubuntu1 . Я пробовал это в течение долгого времени. Я видел этот вопрос , но не смог заставить его работать таким образом. Во всяком случае, у меня есть решение, но я не уверен, что он правильный или у него есть риски безопасности . Пожалуйста, предложите.

Я хотел настроить GRUB таким образом, чтобы: -

  1. Аутентификация требуется для редактирования меню grub или перехода в режим спасения.
  2. Аутентификация не требуется для загрузки ОС

Я следил за Документами Ubuntu и многими другими блогами, но все они основаны на версиях GRUB2 старше, чем 2.02~beta2-9ubuntu1 , поэтому скрипт grub не может быть отредактирован, как предлагается в документах. Следуя документам, я попытался отредактировать меню, но каждый раз, когда возникала проблема, было следующее: Authentication was needed to boot the OS too .

    
задан beginer 01.08.2014 в 15:18
источник

1 ответ

5

Взяв справку из вопроса и Документы Ubuntu Мне удалось получить то, что я хотел, но, пожалуйста, предложите, если я прав, если мои конфигурации действительно безопасны , В основном, когда новое ядро ​​установлено, конфигурация GRUB также должна быть отредактирована или нет.

1. Создать хешированный пароль

  

личинка-mkpasswd-PBKDF2

Дайте пароль, и вы получите хэш.

2. Создать аутентификацию GRUB

В файле /etc/grub.d/40_custom добавьте эти записи в конец, где

set superusers="user1" 
password_pbkdf2 user1 GIVE-GRUB-PASSWORD-HASH-HERE
export superusers

замените GIVE-GRUB-PASSWORD-HASH-ЗДЕСЬ с хешем пароля, полученного как выход grub-mkpasswd-pbkdf2 .

3. Примените аутентификацию к элементам в файле /etc/grub.d/10_linux

Добавьте --users '' к следующим строкам, которые у вас есть: -

echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} --users '' $menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"

и

echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' --users ''  $menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"

Добавьте --unrestricted к следующей строке, так что у вас есть: -

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

4. Обновить Grub

sudo update-grub

Edit

5. Перезагрузка системы

Забыл добавить это раньше; вам нужно перезагрузить систему после этого.

sudo reboot
    
ответ дан beginer 01.08.2014 в 15:18
источник