Grub2: Configurando a senha na versão 2.02 ~ beta2-9ubuntu1

5

Estou usando ubuntu 14.04 e a versão do Grub é 2.02~beta2-9ubuntu1 . Eu tenho tentado isso há muito tempo. Eu vi esta pergunta mas não consegui trabalhe assim. De qualquer forma, tenho a solução, mas não tenho certeza se está correta ou se tem algum risco de segurança . Por favor sugira.

Eu queria configurar o GRUB de forma que: -

  1. A autenticação é necessária para editar o menu grub ou entrar no modo de recuperação.
  2. A autenticação não é necessária para inicializar o sistema operacional

Eu segui o Ubuntu Docs e também muitos outros blogs, mas todos são baseados em versões do GRUB2 anteriores a 2.02~beta2-9ubuntu1 para que o script grub não possa ser editado como sugerido nos documentos. Seguindo os documentos, tentei editar o menuentries, mas cada vez que o problema foi resolvido: Authentication was needed to boot the OS too .

    
por beginer 01.08.2014 / 15:18

1 resposta

5

Tomando ajuda de pergunta e o Ubuntu Docs Eu consegui o que queria, mas por favor sugiro se estou correto, se minhas configurações são realmente seguras . Principalmente que quando um novo kernel é instalado, a configuração do GRUB também terá que ser editada ou não.

1. Crie uma senha com hash

  

grub-mkpasswd-pbkdf2

Dê sua senha e você receberá o hash.

2. Criar autenticação do GRUB

No arquivo /etc/grub.d/40_custom adicione essas entradas no final, onde

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

substitua GIVE-GRUB-PASSWORD-HASH-HERE pelo hash da senha recebida como a saída de grub-mkpasswd-pbkdf2 .

3. Aplique Autenticação ao menuentries no arquivo /etc/grub.d/10_linux

Adicione --users '' às seguintes linhas, de modo que você tenha: -

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

e

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

Adicione --unrestricted à seguinte linha, de modo que você tenha: -

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

4. Atualizar o Grub

sudo update-grub

Editar

5. Sistema de reinicialização

Esqueceu de adicionar isto antes; você precisa reiniciar o sistema depois disso.

sudo reboot
    
por beginer 01.08.2014 / 15:18