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

Това ръководство ще ви запознае с конфигурацията на компютъра ви, за да заключите автоматично сесията си, когато премахнете ключа 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

В първата стъпка този скрипт търси потребителското име на сесията на gnome, т.е. user.

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

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

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

Употреба#

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

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