O Debian 8 (jessie) armazena os parâmetros de senha do Grub 2 no diretório /etc/grub.d/
. Dentro deste diretório existem apenas scripts usados para gerar o arquivo de configuração.
Você pode criar um novo script (por exemplo, /etc/grub.d/01_users
) com o seguinte conteúdo:
#!/bin/bash
cat <<EOF
set superusers="putyourusernamehere"
password putyourusernamehere grub.pbkdf2 grub.pbkdf2.sha512.10000.3450C89...
EOF
Todas as linhas acima fazem parte do arquivo, porque é um script cuja saída irá para o arquivo de configuração final. Como é um script, ele só será processado se for executável ( chmod a+x ...
).
Como alternativa, você pode colocar apenas as linhas necessárias em um dos arquivos existentes que são ajustados para gerar seu próprio conteúdo. Aqui você pode ver como /etc/grub.d/40_custom
substitui o shell que o inicia, com um comando tail retornando o conteúdo de si mesmo, exceto as três primeiras linhas:
grub.pbkdf2.sha512.10000.3450C89...
#!/bin/sh
exec tail -n +3 $0
set superusers="putyourusernamehere"
password putyourusernamehere grub.pbkdf2
Um conselho: talvez você queira adicionar "--unrestricted" às entradas do menu, ou será solicitada a senha também ao inicializar sem modificar a entrada. Então, dentro de 10_linux
:
10_linux:CLASS="--class gnu-linux --class gnu --class os --unrestricted"
O comando a seguir "corrigirá" o script que gera as entradas para sistemas operacionais não Linux, portanto, nenhuma senha é necessária ao inicializá-los:
sed -i "s/menuentry \(.*\) --class/menuentry --restricted --class/" 30_os-prober
Lembre-se de impedir que a senha seja lida pelos usuários. Você pode realizá-lo gerando-o com grub-mkpasswd-pbkdf2
ou fazendo com que o script não seja legível por outros se a senha estiver em texto não criptografado (mais fraco).
Finalmente, execute update-grub2
para gerar o arquivo de configuração final /boot/grub/grub.cfg
.