Como uso o agente polkit do fingerprint-gui com o GNOME Shell?

0

Estou usando o Arch Linux e instalei fingerprint-gui do AUR. Ele detectou o sensor depois que eu me adicionei aos grupos plugdev e scanner . Depois de preceder o seguinte para /etc/pam.d/system-auth :

auth      sufficient pam_fingerprint-gui.so

Eu posso autenticar em sudo , LightDM, GNOME Screensaver, etc. com ele.

O problema é com aplicativos usando o Polkit. fingerprint-gui vem com seu próprio agente de autenticação Polkit ( /usr/lib/fingerprint-gui/fingerprint-polkit-agent , supostamente autostartado por /etc/xdg/autostart/fingerprint-polkit-agent.desktop ). No entanto, isso não inicia:

$ pgrep polkit -fa
2247 /usr/lib/polkit-1/polkitd --no-debug
$ /usr/lib/fingerprint-gui/fingerprint-polkit-agent -d
New PolkitAgentListener  0x1b5f700 
Adding new listener  PolkitQt1::Agent::Listener(0x7ffecc222550) for  0x1b5f700 

** (fingerprint-polkit-agent:2951): WARNING **: Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
"Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject" 
Destroying listener
Removing listener  PolkitQt1::Agent::Listener(0x7ffecc222550) 

Aparentemente, há um agente já em execução. O Wiki do Arch sugere a remoção dos seguintes arquivos do /etc/xdg/autostart se o GNOME ou o KDE estiver instalado:

polkit-gnome-authentication-agent-1.desktop
polkit-kde-authentication-agent-1.desktop

Eu uso o GNOME Shell, mas não tenho polkit-gnome instalado (e, portanto, não tenho esses arquivos). No entanto, parece que o GNOME Shell possui seu próprio agente Polkit:

$ locate polkit | grep agent                             
/etc/xdg/autostart/fingerprint-polkit-agent.desktop
...
/usr/lib/libpolkit-agent-1.so
/usr/lib/libpolkit-agent-1.so.0
/usr/lib/libpolkit-agent-1.so.0.0.0
/usr/lib/libpolkit-qt-agent-1.so
/usr/lib/libpolkit-qt-agent-1.so.1
/usr/lib/libpolkit-qt-agent-1.so.1.112.0
...
$ lsof /usr/lib/libpolkit-agent-1.so.0.0.0
COMMAND   PID    USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
gnome-she 757    muru mem    REG  259,0    40200 289001 /usr/lib/libpolkit-agent-1.so.0.0.0

O que posso fazer para usar o agente Polkit de fingerprint-gui com o GNOME Shell?

$ gnome-shell --version
GNOME Shell 3.18.1
    
por muru 27.10.2015 / 14:01

1 resposta

1

Depois de pontilhar um pouco, substituí gnome-session por um wrapper:

$ cat /usr/local/bin/gnome-session
#! /bin/sh

/usr/lib/fingerprint-gui/fingerprint-polkit-agent -d &
exec /usr/bin/gnome-session "$@"

O agente fingerprint-gui Polkit é horrivelmente feio:

    
por 10.11.2015 / 19:32