Необходимо настроить необходимое поведение при отключении смарт-карты (токена).
Для реализации настройки поведения при отключении смарт-карты будем использовать утилиту pkcs11_eventmgr, которая входит в пакет libpam-pkcs11. Стенд на Debian testing.
В каталог /etc/pam_pkcs11/ помещаем файл pkcs11_eventmgr.conf. Его содержимое:
# Sample pkcs11_eventmgr configuration file
#
pkcs11_eventmgr {
# Run in background? Implies debug=false if true
daemon = true;
# show debug messages?
debug = false;
# polling time in seconds
polling_time = 1;
# expire time in seconds
# default = 0 (no expire)
expire_time = 0;
# pkcs11 module to use
pkcs11_module = /usr/lib/libjcPKCS11-2.so;
#
# list of events and actions
# Card has been removed
event card_remove {
on_error = ignore;
action = "loginctl lock-session";
}
# Too much time card removed
event expire_time {
on_error = ignore;
action = "/bin/false";
}
}
Команду pkcs11_eventmgr поместить в автозапуск.
Для выхода из экрана блокировки редактируем соответствующий файл в /etc/pam.d
Для KDE(plasma) — other
Для Gnome — gnome-screensaver
Для Cinnamon — cinnamon-screensaver
В начало файла добавляем строку:
auth sufficient pam_pkcs11.so config_file=/etc/pam_pkcs11/pam_pkcs11.conf
Теперь при отключении токена система блокируется. Дальнейшая разблокировка осуществляется при помощи токена.
Соответственно, в параметре action можно указать любое действие по вашему усмотрению. Также можно задать действия для события подключения смарт-карты.