Linux: Настройка поведения системы при отключении смарт-карты

Версия ПО:  ОС GNU/Linux, ID Protect для Linux, libpam-pkcs11

Токены:  Любые

Проблема:

Необходимо настроить необходимое поведение при отключении смарт-карты (токена).

Решение:

Для реализации настройки поведения при отключении смарт-карты будем использовать утилиту 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 можно указать любое действие по вашему усмотрению. Также можно задать действия для события подключения смарт-карты.



ID статьи: 225
Последнее обновление: 18 Oct, 2017
Ревизия: 3
JaCarta -> Linux: Настройка поведения системы при отключении смарт-карты
https://kbp.aladdin-rd.ru//index.php?View=entry&EntryID=225