Mengapa sudo meminta kata sandi di jendela setelah saya baru mengautentikasi pada yang berbeda?

10

Jika saya menggunakan baris perintah di xterm, gnome-terminal, dll., Saya dapat mencegah sudomeminta kembali kata sandi, dalam batas tertentu, atau saya dapat menonaktifkannya.

Sebagai kompromi antara kegunaan dan keamanan, saya biasanya hanya ingin waktu tunggu permintaan ulang ini diperpanjang.

Secara default, hanya ada tenggang waktu 15 menit setelah memasukkan kata sandi sudo sebelum diminta lagi. Untuk mengubah ini menjadi 45 menit, saya dapat mengedit /etc/sudoers, dan mengatur timestamp_timeout ke periode tunggu yang saya inginkan (dalam menit).

file sudoers

Jika saya berada dalam sesi terminal yang sama, dan memulai shell baru (mengetik cshatau bash) periode tunggu dihormati.

Tetapi jika saya pergi ke jendela lain untuk mengakses baris perintah di sana, ia akan segera meminta kata sandi saya jika saya mencoba sudo.

Dalam sesi pseudoterminal yang sama ( pts) (misalnya, jika saya menelurkan shell baru di dalam jendela terminal gnome yang sama), batas waktu dihormati.

Jika saya meluncurkan xterm baru, gnome-terminal, dll., Saya harus memasukkan kredensial lagi.

Meskipun satu-satunya pengguna yang aktif di sistem rumah saya (sistem satu pengguna), dll., Sudo tidak percaya bahwa semua ptsentri saya berasal dari pengguna yang sama:

~/pseudoland$ w
 01:27:39 up 1 day, 15:03,  7 users,  load average: 0.32, 0.71, 0.77
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
jgb    tty1                      23:56    1:30m  0.55s  0.51s -bash
jgb    tty7     :0               Tue10   39:03m  2:28m  0.76s gnome-session
root     pts/1    :0.0             00:30   56:23   0.01s  0.01s /bin/bash
jgb    pts/3    :0.0             01:16    0.00s  0.59s  3.22s gnome-terminal
jgb    pts/4    :0.0             01:27   26.00s  0.23s  0.23s /bin/bash
jgb    pts/5    :0.0             01:17    9:26   0.23s  0.23s bash

Apakah ada cara untuk memberi tahu sudo bahwa itu harus menganggap semua jendela yang saya buka berasal dari pengguna yang sama, dan untuk tidak meminta lagi kata sandi saya jika waktu sudo terakhir belum kedaluwarsa?

belacqua
sumber

Jawaban:

12

Masa tenggang dikendalikan oleh apa yang sudodisebut 'tiket'. Saat Anda mengautentikasi dengan sudo, tiket ini dibuat dengan cap waktu tertentu yang pada dasarnya mengatakan kapan otentikasi harus kedaluwarsa.

Secara default (ini diatur ketika paket dikompilasi), batas waktu ini, seperti yang Anda temukan, per tty . Ini adalah fitur sudo yang disebut 'tty_tickets'. Pada dasarnya ini berarti, alih-alih membuat satu kunci per pengguna, sudo malah membuat satu kunci per tty.

Untuk kembali ke perilaku lama dan mengganti default, Anda perlu mengedit /etc/sudoers. Temukan baris " Defaults" yang telah Anda edit untuk mengubah batas waktu, dan tambahkan ,!tty_tickets. Ini akan mematikan fitur tty_tickets dan memberi Anda perilaku yang Anda inginkan.

Iain Lane
sumber