dm-crypt (Español)/Mounting at login (Español)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Estado de la traducción: esta traducción de Dm-crypt/Mounting at login fue revisada el 2018-11-22. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Es posible configurar PAM y systemd (Español) para montar automáticamente una partición «home» cifrada con dm-crypt cuando su propietario inicie sesión y desmontarla cuando la cierre.

Este tutorial supone que ya ha creado su partición cifrada, como se describe en Dm-crypt/Encrypting a non-root file system (Español).

Nota:
  • Debe usar la misma contraseña para su cuenta de usuario y para LUKS.
  • En todos los ejemplos, reemplace SUNOMBRE con su nombre de usuario, 1000 con su ID de usuario y PARTICIÓN con el nombre del dispositivo de la partición cifrada.

Montar al iniciar sesión

pam_exec se puede usar para desbloquear el dispositivo al iniciar sesión. Edite /etc/pam.d/system-login y añada la línea siguiente resaltada en negrita después de auth include system-auth:

Nota: GDM, LightDM, y tal vez otros administradores de inicio de sesión podrían requerir pam_exec para session también, vea Talk:Dm-crypt/Mounting at login#pam_exec required for session & using script.
/etc/pam.d/system-login
...

auth       include    system-auth
auth       optional   pam_exec.so expose_authtok quiet /usr/bin/cryptsetup open /dev/PARTICIÓN home-SUNOMBRE

...

Ahora edite /etc/fstab para montar el dispositivo desbloqueado utilizando systemd.automount:

/etc/fstab
...

/dev/mapper/home-SUNOMBRE  /home/SUNOMBRE     ext4            rw,noatime,noauto,x-systemd.automount 0 2

...

Su directorio «home» se montará automáticamente en el primer acceso realizado por su entorno de escritorio o intérprete de órdenes.

Desmontar al cerrar sesión

Después de cerrar todas sus sesiones, systemd-logind cierra automáticamente user@1000.service. Por lo tanto, puede especificar qué punto de montaje se requerirá y systemd lo desmontará automáticamente:

/etc/systemd/system/home-SUNOMBRE.mount.d/logout.conf
[Unit]
Requires=user@1000.service

Sin embargo, esto creará un bucle de dependencia circular que no puede resolverse automáticamente por systemd , por lo que debe describir las dependencias y ordenarlas de forma explícita:

/etc/systemd/system/user@1000.service.d/homedir.conf
[Unit]
Requires=home-SUNOMBRE.mount
After=home-SUNOMBRE.mount
Nota: Si su entorno de escritorio o alguna otra aplicación no cancela todos sus procesos al cerrar la sesión, es posible que deba establecer KillUserProcesses=yes en /etc/systemd/logind.conf.

Bloquear

Después de desmontar, el dispositivo seguirá desbloqueado, y será posible montarlo sin volver a ingresar la contraseña. Puede configurar y activar un servicio que se inicie cuando el dispositivo se desbloquea (BindsTo=dev-mapper-home\x2dSUNOMBRE.device) y expire después de que el dispositivo se desmonta (Requires,Before=home-SUNOMBRE.mount), bloqueando el dispositivo en el proceso (ExecStop=cryptsetup close):

/etc/systemd/system/cryptsetup-SUNOMBRE.service
[Unit]
DefaultDependencies=no
BindsTo=dev-PARTICIÓN.device
After=dev-PARTICIÓN.device
BindsTo=dev-mapper-home\x2dSUNOMBRE.device
Requires=home-SUNOMBRE.mount
Before=home-SUNOMBRE.mount
Conflicts=umount.target
Before=umount.target

[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStop=/usr/bin/cryptsetup close home-SUNOMBRE

[Install]
RequiredBy=dev-mapper-home\x2dSUNOMBRE.device
Nota: dev-PARTICIÓN es el resultado de systemd-escape -p /dev/PARTICIÓN