Ich habe gerade das Referenzhandbuch gelesen, das von David Z für pkexec auf freedesktop.org geschrieben wurde:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
und
https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html
Das Handbuch sagt, dass die Verwendung der Option auth_admin_keep Ihr Passwort nur für 5 bis 15 Minuten speichert und dass wir benutzerdefinierte Regeln schreiben müssen, wenn wir benutzerdefinierte Zeitüberschreitungen festlegen möchten.
Weiß jemand, wie ich eine benutzerdefinierte Regel für die Zeitüberschreitung schreiben kann? Ich habe versucht, dem Handbuch zu folgen, aber ich bin kein Programmierer und konnte die Syntax nicht verstehen, nein, es gab keine Erwähnung von Timeout-bezogener Syntax.
Akzeptierte Antwort:
Leider scheint das Timeout in der PolicyKit-Upstream-Quelle in der Datei src/polkitbackend/polkitbackendinteractiveauthority.c
als 5 Minuten fest codiert zu sein .
In den Zeilen 3231-3236 heißt es:
/* TODO: right now the time the temporary authorization is kept is hard-coded - we
* could make it a propery on the PolkitBackendInteractiveAuthority class (so
* the local authority could read it from a config file) or a vfunc
* (so the local authority could read it from an annotation on the action).
*/
expiration_seconds = 5 * 60;
Daher ist das Timeout im Quellcode auf 5 Minuten eingestellt, und es gibt derzeit keine Vorkehrungen, es zu ändern, ohne die entsprechenden Teile von PolicyKit neu zu kompilieren.
Andererseits scheint OpenSuSE Leap 15 diese Funktionalität erweitert zu haben. Sie scheinen den ..._keep
neu interpretiert zu haben Aktionen so, dass sie bedeuten „Authentifizierung merken, während der Anfrageprozess läuft“, und ..._keep_session
hinzugefügt und ..._keep_always
Aktionen, die „für die Gesamtheit dieser spezifischen Anmeldesitzung merken“ bzw. „für immer merken“ bedeuten.