Estou trabalhando para configurar meu smart card na estação de trabalho RHEL 6.9 para que, quando eu removê-lo, a tela seja bloqueada automaticamente. Então, quando eu o insiro, a caixa de diálogo de desbloqueio da tela aparece (prefiro um desbloqueio completo, mas isso é outro problema).
Para ser claro, eu tenho isso funcionando. Se eu executar pkcs11_eventmgr
ou card_eventmgr
, xcreensaver-command
será executado com a opção -lock
quando remover o cartão ou com a opção -deactivate
quando eu inseri-lo.
O problema é que, quando executo o comando *_eventmgr
, preciso usar a opção nodaemon
para garantir que ele esteja sendo executado em primeiro plano. Caso contrário, parece simplesmente sair. Quando eu daemonizei os comandos, nada acontece quando eu insiro ou removo meu smart card.
Se eu passar a opção debug
quando eu tentar daemonizar, não receberei nenhuma saída útil. Também não há nada listado quando executo ps
. Novamente, os comandos parecem simplesmente sair. No entanto, usar debug
com nodaemon
exibe todos os tipos de saída interessante.
Os dois pkcs11_eventmgr
e card_eventmgr
são apenas problemáticos, e nenhum deles está realmente funcionando como daemons? Estou faltando algum tipo de etapa de pré-requisito não declarado?
Exemplo de saída de depuração se não for daemonizada:
DEBUG:card_eventmgr.c:380: Scanning present readers
DEBUG:card_eventmgr.c:437: 0: Dell smart card reader keyboard 00 00
DEBUG:card_eventmgr.c:496: Reader 0 (Dell smart card reader keyboard 00 00)
DEBUG:card_eventmgr.c:500: Card state: 0x00327698
DEBUG:card_eventmgr.c:508: Card removed
DEBUG:card_eventmgr.c:132: Onerror is set to: 'ignore'
DEBUG:card_eventmgr.c:136: Executiong action: '/usr/bin/xscreensaver-command -lock'
xscreensaver-command: activating and locking.
DEBUG:card_eventmgr.c:145: Action '/usr/bin/xscreensaver-command -lock' returns 0
DEBUG:card_eventmgr.c:496: Reader 0 (Dell smart card reader keyboard 00 00)
DEBUG:card_eventmgr.c:500: Card state: 0x00393250
DEBUG:card_eventmgr.c:513: Card inserted
DEBUG:card_eventmgr.c:132: Onerror is set to: 'ignore'
DEBUG:card_eventmgr.c:136: Executiong action: '/usr/bin/xscreensaver-command -deactivate'
xscreensaver-command: deactivating.
DEBUG:card_eventmgr.c:145: Action '/usr/bin/xscreensaver-command -deactivate' returns 0
A única saída quando executado com as opções debug
e daemon
é
DEBUG:card_eventmgr.c:352: Going to be daemon...
A única informação de /var/log/secure
:
gdm-smartcard: pam_pkcs11(gdm-smartcard:auth): pam_get_pwd() failed: Conversation error
De /var/log/messages
:
ifdhandler.c:1091:IFDHTransmitToICC() usb:413c/2101:libhal:/org/freedesktop/Hal/devices/usb_device_413c_2101_noserial_if0 (lun: 0)
....Previous message repeated numerous times
winscard.c:343:SCardConnect() Lock released
ifdhandler.c:1091:IFDHTransmitToICC() usb:413c/2101:libhal:/org/freedesktop/Hal/devices/usb_device_413c_2101_noserial_if0 (lun: 0)
....Previous message repeated numerous times