Bloqueo automático de la pantalla al retirarse

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

active

active

inactive

active

inactive

inactive

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

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+="/bin/bash -c '/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 3: ENV{PRODUCT}=="20a0/42b2/107"

  • 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 | grep -E "gdm-(wayland|x)" | awk '{print $1}'`

if [ -n $user ]; then
        su $user -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus /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.