Perché sudo chiede una password nella finestra dopo che ne ho appena autenticato una diversa?


10

Se sto usando la riga di comando in xterm, gnome-terminal, ecc., Posso evitare sudodi richiedere nuovamente una password, entro alcuni limiti, oppure posso disabilitarla.

Come compromesso tra usabilità e sicurezza, di solito desidero solo allungare questo tempo di attesa per le nuove query.

Per impostazione predefinita, dopo l'inserimento di una password sudo è necessario solo un periodo di tolleranza di 15 minuti prima che venga richiesto nuovamente. Per cambiarlo a 45 minuti, posso modificare /etc/sudoerse impostare timestamp_timeout sul periodo di attesa che voglio (in minuti).

file sudoers

Se mi trovo nella stessa sessione terminale e avvio una nuova shell (digitando csho bash) il periodo di attesa viene rispettato.

Ma se vado in un'altra finestra per accedere alla riga di comando lì, chiederò immediatamente la mia password se provo a farlo sudo.

All'interno della stessa sessione pseudoterminale ( pts) (ad esempio, se ho generato una nuova shell all'interno della stessa finestra gnome-terminal), il timeout è rispettato.

Se lancio un nuovo xterm, gnome-terminal, ecc., Devo inserire di nuovo le credenziali.

Nonostante sia l'unico utente attivo sul mio sistema di casa (un sistema a utente singolo), ecc., Sudo non si fida che tutte le mie ptsvoci provengano dallo stesso utente:

~/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

C'è un modo per dire a sudo che dovrebbe considerare tutte le finestre che apro come provenienti dallo stesso utente e di non chiedere di nuovo la mia password se l'ultimo timer sudo non è scaduto?

Risposte:


12

Il periodo di tolleranza è controllato da ciò che sudochiama un "ticket". Quando si esegue l'autenticazione con sudo, viene creato questo ticket con un determinato timestamp che in pratica indica quando l'autenticazione dovrebbe scadere.

Per impostazione predefinita (viene impostato al momento della compilazione del pacchetto), questo timeout è, come hai trovato, per tty . Questa è una caratteristica di sudo chiamata 'tty_tickets'. Fondamentalmente questo significa che, invece di creare un blocco per utente, sudo crea invece un blocco per tty.

Per ripristinare il vecchio comportamento e sovrascrivere quello predefinito, è necessario modificare /etc/sudoers. Trova la Defaultsriga " ", che hai già modificato per modificare il timeout e aggiungila ,!tty_tickets. Ciò disattiverà la funzione tty_tickets e ti darà il comportamento che desideri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.