Автоматично заключване на екрана при премахване

Това ръководство ще ви запознае с конфигурацията на компютъра ви, за да заключите автоматично сесията си, когато премахнете ключа Nitrokey.

Конфигурацията изисква създаването на два файла в две различни директории.

Изисквания

  • Ubuntu 20.04 или Debian 10 (Buster), и двете с инсталиран Gnome Display Manager.

  • Nitrokey Pro 2, Nitrokey Storage 2 или Nitrokey HSM 2

Статична конфигурация на DNS

Създаване на файла .rules

С любимия си текстов редактор създайте файл с име 85-nitrokey.rules

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

И добавете следните редове:

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

Запазете файла и излезте от редактора.

Този файл задава ново хардуерно правило, което изпълнява gnome-screensaver-lock при изваждане на устройството Nitrokey.

Трябва да промените конфигурацията в зависимост от устройството, което използвате, както следва:

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

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

  • Съхранение на Nitrokey: ENV{PRODUCT}=="20a0/4109/101"

Ако разполагате с друго устройство и трябва да разберете символния низ ENV{PRODUCT}, можете да използвате следната команда, за да разберете информацията при включване:

$ udevadm monitor --property --udev

Създаване на скрипта gnome-screensaver-lock

С любимия си текстов редактор създайте файл с име gnome-screensaver-lock

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

И добавете следните редове:

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

In the first step, this script looks for the user-name of the gnome session, i.e. user.

Когато бъде извикан при премахване на Nitrokey, скриптът прави заявка user, превключва към своята сесия и заключва екрана, като извиква екрана на заставката.

Изпълнение на скрипта

След като всичко е готово, изпълнете скрипта веднъж и той ще заключи екрана. Няма значение дали ключът Nitrokey е включен или не за това първо изпълнение.

Употреба

Сега можете да влезете отново в сесията си, като въведете паролата си и (отново) включите Nitrokey, ако не сте го направили преди.

Следващият път, когато изключите Nitrokey от компютъра, той автоматично ще заключи екрана.