Právě jsem četl referenční příručku napsanou Davidem Z pro pkexec na freedesktop.org:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
a
https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html
Manuál říká, že použití možnosti auth_admin_keep uchová vaše heslo pouze 5 až 15 minut a že pokud chceme nastavit vlastní časové limity, máme napsat vlastní pravidla.
Věděl by někdo, jak mohu napsat vlastní pravidla pro časový limit? Snažil jsem se postupovat podle manuálu, ale nejsem kodér a nebyl jsem schopen porozumět syntaxi, nebyly tam žádné zmínky o syntaxi související s časovým limitem.
Přijatá odpověď:
Bohužel se zdá, že časový limit je pevně zakódován jako 5 minut v upstreamovém zdroji PolicyKit, v souboru src/polkitbackend/polkitbackendinteractiveauthority.c
.
Na řádcích 3231-3236 stojí:
/* 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;
Časový limit je tedy ve zdrojovém kódu nastaven na 5 minut a v současné době neexistují žádná ustanovení pro jeho změnu bez rekompilace příslušných částí PolicyKit.
Na druhou stranu se zdá, že OpenSuSE Leap 15 tuto funkcionalitu rozšířil. Zdá se, že re-interpretovali ..._keep
akce, které znamenají „zapamatovat si autentizaci, když běží proces dotazování“, a přidáno ..._keep_session
a ..._keep_always
akce znamenající „pamatovat si po celou dobu této konkrétní relace přihlášení“ a „zapamatovat si navždy“.