Polkit

pkexec - 編寫 pkexec 策略時如何為 auth_admin_keep 設置自定義超時

  • July 25, 2018

我剛剛在 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操作分別表示“記住整個特定登錄會話”和“永遠記住”。

引用自:https://unix.stackexchange.com/questions/409636