如何在 GNOME Shell 中使用 Fingerprint-gui 的 polkit 代理?

如何在 GNOME Shell 中使用 Fingerprint-gui 的 polkit 代理?

fingerprint-gui我正在使用 Arch Linux,并从 AUR安装。在我将自己添加到plugdev和组后,它检测到了传感器scanner。在添加以下内容后/etc/pam.d/system-auth

auth      sufficient pam_fingerprint-gui.so

我可以sudo用它对 、LightDM、GNOME Screensaver 等进行身份验证。

问题出在使用 Polkit 的应用程序上。fingerprint-gui带有自己的 Polkit 身份验证代理(/usr/lib/fingerprint-gui/fingerprint-polkit-agent,应该由/etc/xdg/autostart/fingerprint-polkit-agent.desktop)自动启动。但是,它没有启动:

$ 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) 

显然已经有一个代理正在运行。拱门维基/etc/xdg/autostart如果安装了 GNOME 或 KDE,建议删除以下文件:

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

我使用 GNOME Shell,但我没有polkit-gnome安装(因此我没有这些文件)。然而,GNOME Shell 似乎有自己的 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

如何fingerprint-gui在 GNOME Shell 中使用 Polkit 代理?

$ gnome-shell --version
GNOME Shell 3.18.1

答案1

犹豫了一下后,我gnome-session用包装器替换了:

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

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

不过, Polkitfingerprint-gui代理非常丑陋:

在此输入图像描述

相关内容