Polkit
pkexec - 編寫 pkexec 策略時如何為 auth_admin_keep 設置自定義超時
我剛剛在 freedesktop.org 上閱讀 David Z 為 pkexec 編寫的參考手冊:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
和
https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html
手冊說使用 auth_admin_keep 選項只會將您的密碼保留 5 到 15 分鐘,如果我們想設置自定義超時,我們已經編寫了自定義規則。
有誰知道我該如何為超時編寫自定義規則?我嘗試按照手冊進行操作,但我不是編碼員,我無法理解合成器,也沒有提到與超時相關的合成器。
不幸的是,在 PolicyKit 上游源文件中,超時似乎被硬編碼為 5 分鐘。
src/polkitbackend/polkitbackendinteractiveauthority.c
在第 3231-3236 行它說:
/* 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;
因此,在原始碼中超時設置為 5 分鐘,目前沒有規定在不重新編譯 PolicyKit 的適當部分的情況下更改它。
另一方面,OpenSuSE Leap 15 似乎擴展了這個功能。他們似乎已將這些
..._keep
操作重新解釋為“在詢問過程執行時記住身份驗證”,並添加..._keep_session
和..._keep_always
操作分別表示“記住整個特定登錄會話”和“永遠記住”。