Bloqueo automático de la pantalla al retirarse

Esta guía le guiará a través de la configuración de su ordenador, para bloquear automáticamente su sesión cuando retire la Nitrokey.

La configuración requiere la creación de dos archivos en dos directorios diferentes.

Requisitos

  • Ubuntu 20.04 o Debian 10 (Buster), ambos con Gnome Display Manager instalado.

  • Nitrokey Pro 2, Nitrokey Storage 2 o Nitrokey HSM 2

Configuración

Crear el archivo .rules.

Con tu editor de texto favorito crea un archivo llamado 85-nitrokey.rules

$ sudo editor /etc/udev/rules.d/85-nitrokey.rules

Añade la siguiente línea al archivo

ACTION=="remove", ENV{PRODUCT}=="20a0/4108/101" RUN+="/usr/local/bin/gnome-screensaver-lock"

Guarde el archivo y salga del editor.

Este archivo configura una nueva regla de hardware que ejecuta el gnome-screensaver-lock al retirar el dispositivo Nitrokey.

Debe cambiar la configuración de acuerdo con el dispositivo que está utilizando como sigue:

  • Nitrokey Pro: ENV{PRODUCT}=="20a0/4108/101"

  • Nitrokey HSM: ENV{PRODUCT}=="20a0/4230/101"

  • Almacenamiento de Nitrokey: ENV{PRODUCT}=="20a0/4109/101"

Si tienes un dispositivo diferente y necesitas averiguar la cadena ENV{PRODUCT} puedes usar el siguiente comando para averiguar los infos al enchufar:

$ udevadm monitor --property --udev

Crear el script gnome-screensaver-lock

Con tu editor de texto favorito crea un archivo llamado gnome-screensaver-lock

$ sudo editor /usr/local/bin/gnome-screensaver-lock

Añada el siguiente texto

user=`ps axo user:30,comm | egrep "gdm-(wayland|x)" | awk '{print $1}'`

if [ -n $user ]; then
        su $user -c "/usr/bin/dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock"
fi

En el primer paso, este script busca el nombre de usuario de la sesión de gnome, es decir, user.

Cuando se llama a la eliminación de Nitrokey, el script consulta user, cambia a su sesión, y bloquea la pantalla solicitando la pantalla del salvapantallas.

Ejecutar el script

Una vez configurado todo, ejecute el script una vez, y bloqueará la pantalla. No importa si la Nitrokey está conectada o no para esta primera ejecución.

Uso

Ahora puedes volver a entrar en tu sesión introduciendo tu contraseña, y (re)conectar tu Nitrokey si no lo has hecho antes.

La próxima vez que desenchufes tu Nitrokey del ordenador, se bloqueará automáticamente la pantalla.