Berapa lama kata sandi untuk mengeksekusi perintah dengan sudo di-cache?

23

Jika saya menjalankan perintah yang memerlukan hak akses root sudo, saya akan diminta untuk memasukkan kata sandi pengguna saat ini. Setelah itu untuk sementara waktu, jika saya menjalankan jenis perintah yang sama dengan sudo, saya tidak akan diminta kata sandi lagi. Jadi tebakan saya adalah kata sandi di-cache di suatu tempat sampai berakhir. Berapa lama waktu kedaluwarsa ini? Apakah mungkin untuk mengkonfigurasinya?

Meysam
sumber
1
Hanya fyi, Anda dapat meminta untuk memperpanjang kedaluwarsa menggunakan sudo -v. Ini bagus untuk meletakkan di bagian atas skrip yang menjalankan perintah sudo sehingga Anda diminta kata sandi di awal.
valbaca
Catatan sudo sebenarnya tidak menyimpan kata sandi. Sudo sebenarnya tidak memerlukan kata sandi sama sekali untuk melakukan tugasnya, ia hanya meminta untuk memverifikasi bahwa pengguna diizinkan untuk menjalankan perintah yang diberikan. Pada dasarnya itu cache kredensial pengguna untuk suatu periode (sebagai "cap waktu" khusus, lihat jawaban atas), selama itu tidak mengharuskan pengguna untuk memverifikasi ulang diri mereka sendiri. Kata sandi itu sendiri tidak di-cache (disimpan), tidak seperti browser web atau kunci enkripsi.
anthony

Jawaban:

20

man 5 sudoersmemberi tahu kami bahwa ada opsi timestamp_timeout:

timestamp_timeout

Jumlah menit yang dapat dilewati sebelum sudo akan meminta passwd lagi. Batas waktu dapat mencakup komponen fraksional jika granularitas menit tidak mencukupi, misalnya 2,5. Standarnya adalah 5. Tetapkan ini ke 0 untuk selalu meminta kata sandi. Jika disetel ke nilai kurang dari 0, stempel waktu pengguna tidak akan pernah kedaluwarsa. Ini dapat digunakan untuk memungkinkan pengguna membuat atau menghapus prangko waktu mereka masing-masing melalui “sudo -v” dan “sudo -k”.

Jadi ya, itu dapat dikonfigurasi melalui /etc/sudoers, dan secara default akan berakhir setelah 5 menit.

Ulrich Schwarz
sumber
4
dan Anda tahu, gunakan visudountuk mengedit sudokonfigurasi, TIDAK PERNAH mengedit /etc/sudoerssecara langsung.
Carlos Campderrós
2
@ CarlosCampderrós: ​​Benar itu. Dan (jika memungkinkan) selalu menjaga agar root root terbuka agar tidak berada di sisi yang aman. :)
Ulrich Schwarz
7

Itu tergantung pada konfigurasi Anda. Default pada sebagian besar distribusi (dan dalam sumber) adalah 5 menit, tetapi Anda dapat mengubahnya dengan timestamp_timeoutopsi di /etc/sudoers. Dari man sudoers:

Jumlah menit yang dapat dilewati sebelum sudo akan meminta passwd lagi. Batas waktu dapat mencakup komponen fraksional jika granularitas menit tidak mencukupi, misalnya 2,5. Standarnya adalah 5. Tetapkan ini ke 0 untuk selalu meminta kata sandi. Jika disetel ke nilai kurang dari 0, stempel waktu pengguna tidak akan pernah kedaluwarsa. Ini dapat digunakan untuk memungkinkan pengguna membuat atau menghapus prangko waktu mereka masing-masing melalui "sudo -v" dan "sudo -k".

Misalnya, untuk mengatur batas waktu pengguna chrismenjadi 20 menit, tambahkan berikut ini ke /etc/sudoers, atau dalam file dalam /etc/sudoers.d(catatan: baik urutan aturan dalam file ini dan urutan file ini penting, pastikan itu tidak sengaja ditimpa oleh aturan yang dijalankan kemudian):

Defaults:chris timestamp_timeout=20
Chris Down
sumber