Saya baru saja membaca manual referensi yang ditulis oleh David Z untuk pkexec di freedesktop.org:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
dan
https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html
Manual mengatakan bahwa menggunakan opsi auth_admin_keep hanya akan menyimpan kata sandi Anda selama 5 hingga 15 menit dan jika kami ingin menyetel batas waktu khusus, kami telah menulis aturan khusus.
Adakah yang tahu bagaimana saya bisa menulis aturan khusus untuk batas waktu? Saya mencoba mengikuti manualnya tetapi saya bukan pembuat kode dan saya tidak dapat memahami sintaksisnya, tidak ada yang menyebutkan sintaks terkait waktu habis.
Jawaban yang Diterima:
Sayangnya, batas waktu tampaknya dikodekan selama 5 menit di sumber upstream PolicyKit, dalam file src/polkitbackend/polkitbackendinteractiveauthority.c
.
Pada baris 3231-3236 tertulis:
/* 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;
Jadi, batas waktu diatur ke 5 menit dalam kode sumber, dan saat ini tidak ada ketentuan untuk mengubahnya tanpa mengkompilasi ulang bagian PolicyKit yang sesuai.
Di sisi lain, OpenSuSE Leap 15 tampaknya telah memperluas fungsionalitas ini. Mereka tampaknya telah menafsirkan ulang ..._keep
tindakan berarti "ingat otentikasi saat proses bertanya sedang berjalan", dan menambahkan ..._keep_session
dan ..._keep_always
tindakan yang berarti "ingat untuk keseluruhan sesi login khusus ini" dan "ingat selamanya".