Costringendo sudo a richiedere una password


26

Se faccio quanto segue:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

La seconda invocazione di sudo non richiede una password perché anche se mi sono disconnesso di nuovo, sono ancora entro un certo limite di tempo, il che significa che non è necessario richiedere nuovamente la mia password.

Perché sto provando alcuni nuovi priv per assicurarmi che funzionino, questo mi sta davvero rallentando mentre aspetto il timeout.

Esiste un comando che posso eseguire per ripristinare il timeout?

A proposito, non voglio cambiare il timeout o influire su altri utenti!


Se non riesci ancora a forzare sudo a richiedere la password, potresti anche dover commentare le regole utente che menzionano "NOPASSWD" se sono presenti nella /etc/sudoers.d/directory. Ho la linea #includedir /etc/sudoers.din /etc/sudoerse anche se la linea è disabilitata da un commento ma sembra che il #prima includedirnon sia letto come un commento!
Baptapt

Risposte:


40

sudo -kUcciderà la data / ora del timeout. Puoi anche inserire il comando in seguito, comesudo -k test_my_privileges.sh

Da man sudo:

-K L'opzione -K (uccisione sicura) è simile a -k, tranne per il fatto che rimuove completamente il timestamp dell'utente e non può essere utilizzata insieme a un comando o altra opzione. Questa opzione non richiede una password.

-k Se usato da solo, l'opzione -k (kill) per sudo invalida il timestamp dell'utente impostando l'ora su di esso in Epoch. Alla successiva esecuzione di sudo verrà richiesta una password. Questa opzione non richiede una password ed è stata aggiunta per consentire a un utente di revocare le autorizzazioni sudo da un file .logout.

Puoi anche cambiarlo permanentemente. Da man sudoers:

timestamp_timeout

Numero di minuti che possono trascorrere prima che sudo chieda nuovamente un passwd. Il timeout può includere una componente frazionaria se la granularità minima è insufficiente, ad esempio 2.5. Il valore predefinito è 5. Impostalo su 0 per richiedere sempre una password. Se impostato su un valore inferiore a 0, il timestamp dell'utente non scadrà mai. Questo può essere usato per consentire agli utenti di creare o eliminare i propri timestamp rispettivamente su sudo -v e sudo -k.


2
Fare attenzione sudo -k commanda non rimuovere le credenziali. Ignora solo le credenziali correnti e non le memorizza.
user1346466

Solo per aggiungere a questo. Se si desidera modificare il timeout del timestamp, è necessario modificare il sudoersfile con sudo visudo. Quindi aggiungi la riga Defaults timestamp_timeout = 0alla fine dell'elenco degli altri Defaultsnel file. Rimuovere nuovamente la linea per tornare al timeout "normale".
Floris,

La mia domanda di follow-up: unix.stackexchange.com/q/416039/26152
UlfR

5

La risposta di Shawn è ottima, ma esiste un'opzione di configurazione aggiuntiva che potrebbe essere utile in questa situazione.

Da man sudoers:

tty_tickets

Se impostato, gli utenti devono autenticarsi in base alla percentuale. Con questo flag abilitato, sudo utilizzerà un file denominato per il tty a cui l'utente ha effettuato l'accesso nella directory del timestamp dell'utente. Se disabilitato, al suo posto viene utilizzato il timestamp della directory.

Questo flag è attivo per impostazione predefinita.

Da man sudo:

Quando l'opzione tty_tickets è abilitata nei sudoer, il timestamp ha una granularità per-tty ma può comunque sopravvivere alla sessione dell'utente. Sui sistemi Linux in cui viene utilizzato il filesystem devpts, i sistemi Solaris con il filesystem device, così come altri sistemi che utilizzano un filesystem devfs che aumentano monotonicamente il numero di inode dei dispositivi man mano che vengono creati (come Mac OS X), sudo è in grado per determinare quando un file timestamp basato su tty è obsoleto e lo ignorerà. Gli amministratori non dovrebbero fare affidamento su questa funzionalità in quanto non è universalmente disponibile.

Penso che sia relativamente nuovo. Se il tuo sistema lo supporta, se esci e accedi, sudo richiederà di nuovo la tua password. (Ho anche sudo -Knel mio script di logout delle shell.)

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.