web-dev-qa-db-fra.com

Grub2: Définition du mot de passe dans la version 2.02 ~ beta2-9ubuntu1

J'utilise ubuntu 14.04 et la version de Grub est 2.02~beta2-9ubuntu1. J'essaie cela depuis longtemps. J'ai vu ceci question mais je ne pouvais pas le faire fonctionner de cette façon. Quoi qu’il en soit, j’ai la solution, mais je ne sais pas si elle est correcte ou si elle présente des risques de sécurité . Veuillez suggérer.

Je voulais configurer GRUB tel que: -

  1. Une authentification est requise pour éditer le menu grub ou entrer en mode de secours.
  2. L'authentification est non requise pour démarrer le système d'exploitation

J'ai suivi buntu Docs ainsi que de nombreux autres blogs, mais tous sont basés sur des versions de GRUB2 antérieures à 2.02~beta2-9ubuntu1, de sorte que le script grub ne peut pas être modifié comme suggéré dans la documentation. Après la documentation, j'ai essayé de modifier les entrées de menu, mais à chaque fois, le problème était le suivant: Authentication was needed to boot the OS too.

5
beginer

En prenant l’aide de question et de buntu Docs , j’ai réussi à obtenir ce que je voulais, mais veuillez suggérer si j’ai raison, si mes configurations sont vraiment sécurisées. Principalement que lorsqu'un nouveau noyau est installé, la configuration GRUB devra également être modifiée ou non.

1. Créer un mot de passe haché

grub-mkpasswd-pbkdf2

Donnez votre mot de passe et vous recevrez le hash.

2. Créer GRUB Authentification

Dans le fichier /etc/grub.d/40_custom, ajoutez ces entrées à la fin, où

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

remplacez GIVE-GRUB-PASSWORD-HASH-HERE par le hachage du mot de passe reçu en sortie de grub-mkpasswd-pbkdf2.

3. Appliquer l’authentification aux entrées de menu du fichier /etc/grub.d/10_linux

Ajoutez --users '' aux lignes suivantes de sorte que vous ayez: -

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

et

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

Ajoutez --unrestricted à la ligne suivante pour que vous ayez: -

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

4. Mettre à jour Grub

Sudo update-grub

Modifier

5. Redémarrer le système

J'ai oublié d'ajouter ceci plus tôt; vous devez ensuite redémarrer le système.

Sudo reboot
5
beginer