Автоматическая блокировка экрана при удалении#

Это руководство поможет вам настроить компьютер для автоматической блокировки сеанса при извлечении ключа Nitrokey.

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

Требования#

  • Ubuntu 20.04 или Debian 10 (Buster), оба с установленным Gnome Display Manager.

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

Конфигурация#

Создайте файл .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"

  • Хранилище Нитрокей: 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 от компьютера, он автоматически заблокирует экран.