fprintd und su
Meinen Desktop lasse ich beim Suspend automatisch mit einem Hook in pm-utils sperren. Dabei gab es allerdings bislang Probleme mit dem Fingerprintreader: Es wird nur nach dem Passwort gefragt.
Lange habe ich darüber nachgedacht und experimentiert. Liegt es an der X-Session? An irgendwelchen Umgebungsvariablen? Irgendwann habe ich es aufgegeben und mich damit abgefunden, das Passwort einzugeben.
Nun hatte ich eine neue Idee und tatsächlich: Es funktioniert!
Probiert habe ich folgendes:
$ su -c fprintd-verify sammyshp
Streifen Sie Ihren rechten Zeigefinger über UPEK Eikon 2
Using device /net/reactivated/Fprint/Device/0
failed to claim device: Not Authorized: net.reactivated.fprint.device.enroll
Upps, ja was ist das denn? Genau: PolicyKit. Das überwacht diverse Zugriffe und prüft, ob der Benutzer die entsprechenden Rechte hat. Irgendwie sorgt su
dafür, dass PolicyKit die Rechte nicht richtig auswertet. Die Lösung war, die Rechte für alle Benutzer in /usr/share/polkit-1/actions/net.reactivated.fprint.device.policy zu setzen:
<action id="net.reactivated.fprint.device.verify">
…
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
Dort müssen die beiden no
durch yes
ersetzt werden. Sicherheitsrelevant sollte das nicht sein, da für enroll
und setusername
weiterhin restriktivere Rechte gesetzt sind.