Verrouillage automatique de l’écran à la suppression#

Ce guide vous guidera dans la configuration de votre ordinateur, afin de verrouiller automatiquement votre session lorsque vous retirez la Nitrokey.

La configuration nécessite la création de deux fichiers sous deux répertoires différents.

Exigences#

  • Ubuntu 20.04 ou Debian 10 (Buster), tous deux avec Gnome Display Manager installé.

  • Nitrokey Pro 2, Nitrokey Storage 2, ou Nitrokey HSM 2

Configuration#

Créer le fichier « rules ».#

Avec votre éditeur de texte préféré, créez un fichier appelé « 85-nitrokey.rules ».

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

Ajoutez la ligne suivante au fichier

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

Enregistrez le fichier et quittez l’éditeur.

Ce fichier configure une nouvelle règle matérielle qui exécute le « gnome-screensaver-lock » lors du retrait du dispositif Nitrokey.

Vous devez modifier la configuration en fonction du dispositif que vous utilisez comme suit :

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

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

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

Si vous avez un autre appareil et que vous avez besoin de connaître la chaîne ENV{PRODUCT}, vous pouvez utiliser la commande suivante pour obtenir les informations lors de la connexion :

$ udevadm monitor --property --udev

Créer le script « gnome-screensaver-lock ».#

Avec votre éditeur de texte favori, créez un fichier appelé gnome-screensaver-lock.

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

Ajoutez le texte suivant

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

Dans la première étape, ce script recherche le nom d’utilisateur de la session gnome, c’est-à-dire user.

Lorsqu’il est appelé au moment de la suppression de Nitrokey, le script interroge user, passe à sa session et verrouille l’écran en faisant apparaître l’écran de veille.

Exécuter le script#

Une fois que tout est configuré, exécutez le script une fois, et il verrouillera l’écran. Il importe peu que la Nitrokey soit branchée ou non pour cette première exécution.

Utilisation#

Tu peux maintenant te reconnecter à ta session en entrant ton mot de passe, et (re)brancher ta Nitrokey si tu ne l’as pas fait avant.

La ou les prochaines fois que tu débrancheras ta Nitrokey de l’ordinateur, elle verrouillera automatiquement l’écran.