Grub2 nos permite configurar una autenticación muy granular, se pueden configurar varios usuarios con sus respectivos passwords además podemos dar diferentes permisos a cada usuario.
Los permisos disponibles son:
- Boot: Permite arrancar la imagen de kernel.
- Edit: Permite editar los parámetros de arranque del kernel.
Generamos un password válido:
Definimos los usuarios, en este caso kr0m será superuser y kr0m2 usuario regular:
echo 'set superusers="kr0m"'
echo 'password_pbkdf2 kr0m grub.pbkdf2.sha512.10000.8A3C50AXXXXXXXXDD0A1F808F2C3B'
echo 'password_pbkdf2 kr0m2 grub.pbkdf2.sha512.10000.8A3C50AYYYYYYYYYDD0A1F808F2C3B'
Definimos los permisos de cada usuario, hay que editar el parámetro CLASS:
Solo el superusuario kr0m puede editar/bootear imágenes de kernel:
CLASS="--class gnu-linux --class gnu --class os --users '""'"
El usuario kr0m2 puede bootear pero solo puede editar el superusuario:
CLASS="--class gnu-linux --class gnu --class os --users '"kr0m2"'"
Se puede bootear sin necesidad de usuario/password pero solo el superusuario puede editar, esta es la opción mas común ya que si reiniciamos un servidor no será necesario estar fÃsicamente para meter el password de arranque:
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
Regeneramos la configuración de grub: