Solución al error "cryptsetup: WARNING: Permissive UMASK (0022). Private key material within the initrd might be left unprotected."
Si diseñaste tu tabla de particiones para instalar Ubuntu y encriptar algunas particiones con LUKS de vez en cuando vas a tener uno que otro problema. El día de hoy solucionaremos un error que ocurre cuando al instalar algún paquete se actualiza el ramdisk inicial (initramfs) lo que causa que en el próximo booteo del sistema nuestro sistema Linux no arranque de la manera correcta.
El error en cuestión es el siguiente:
cryptsetup: WARNING: Permissive UMASK (0022). Private key material within the initrd might be left unprotected.
Este error indica que el material de clave privada no tiene los permisos adecuados y podría estar desprotegido. La buena noticia es que este error es relativamente fácil de solucionar si conoces cómo está montada tu tabla de particiones.
Solucion
La solución a este problema consiste en asignar los permisos correctos en la configuración del ramdisk inicial. Como el arranque de tu sistema no funciona, deberás configurar una USB con alguna versión de Linux y seguir los pasos que te vamos a describir a continuación En esencia, deberás seguir estos pasos:
- Preparar una USB live de Linux (este paso sale del scope de este post)
- Entrar como chroot al sistema (este paso sale del scope de este post)
- Agregar los permisos en el ramdisk inicial
- Generar lel ramdisk inicial nuevamente
Entrar como chroot al sistema
sudo cryptsetup luksOpen /dev/nvme0n1p1 LUKS_BOOT
sudo cryptsetup luksOpen /dev/nvme0n1p5 nvme0n1p5_crypt
sudo mount /dev/mapper/vgubuntu-root /mnt
sudo mount /dev/mapper/LUKS_BOOT /mnt/boot
sudo mount /dev/nvme0n1p3 /mnt/boot/efi
for n in proc sys dev etc/resolv.conf; do sudo mount --rbind /$n /mnt/$n; done
sudo chroot /mnt
mount -a
update-initramfs: Generating /boot/initrd.img-6.2.0-20-generic
cryptsetup: WARNING: Permissive UMASK (0022). Private key material within the
initrd might be left unprotected.
update-initramfs: Generating /boot/initrd.img-5.19.0-40-generic
cryptsetup: WARNING: Permissive UMASK (0022). Private key material within the
initrd might be left unprotected.
root@ubuntu:/# dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep ii
ii linux-image-5.19.0-40-generic 5.19.0-40.41 amd64 Signed kernel image generic
ii linux-image-6.2.0-20-generic 6.2.0-20.20 amd64 Signed kernel image generic
Agregar los permisos en el ramdisk inicial
echo "UMASK=0077" >> /etc/initramfs-tools/initramfs.conf
Generar el ramdisk inicial nuevamente
update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-6.2.0-20-generic
update-initramfs: Generating /boot/initrd.img-5.19.0-40-generic