Quanto dura la password per eseguire un comando con sudo memorizzato nella cache?


23

Se eseguo un comando che richiede i privilegi di root con sudo, mi verrà chiesto di inserire la password dell'utente corrente. Dopodiché, se eseguo lo stesso tipo di comandi con sudo, non mi verrà più richiesta la password. Quindi la mia ipotesi è che la password viene memorizzata nella cache da qualche parte fino alla scadenza. Quanto dura questo tempo di scadenza? È possibile configurarlo?


1
Per ora, puoi chiedere di estendere la scadenza usando sudo -v. Questo è ottimo per mettere in cima agli script che eseguono i comandi sudo in modo che ti venga chiesta la password all'inizio.
valbaca,

Nota sudo in realtà non memorizza nella cache la password. Sudo in realtà non ha affatto bisogno di una password per fare il suo lavoro, si chiede solo per verificare che l'utente abbia autorizzato a eseguire il comando dato. Fondamentalmente memorizza nella cache le credenziali degli utenti per un periodo (come un "timestamp" speciale, vedi la risposta migliore), durante il quale non richiede all'utente di ricontrollarsi. La password stessa non viene memorizzata nella cache (memorizzata), a differenza di un browser Web o di chiavi di crittografia.
Anthony

Risposte:


20

man 5 sudoersci informa che esiste un'opzione timestamp_timeout:

timestamp_timeout

Numero di minuti che possono trascorrere prima che sudo richieda 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 tramite "sudo -v" e "sudo -k".

Quindi sì, può essere configurato tramite /etc/sudoerse per impostazione predefinita scade dopo 5 minuti.


4
e sai, usa visudoper modificare la sudoconfigurazione, MAI modificare /etc/sudoersdirettamente.
Carlos Campderrós,

2
@ CarlosCampderrós: ​​è vero. E (dove possibile) tenere sempre aperta un'altra shell di root per stare sul sicuro. :)
Ulrich Schwarz,

7

Dipende dalla tua configurazione. L'impostazione predefinita sulla maggior parte delle distribuzioni (e nell'origine) è 5 minuti, ma è possibile modificarlo con l' timestamp_timeoutopzione in /etc/sudoers. Da man sudoers:

Numero di minuti che possono trascorrere prima che sudo richieda 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 tramite "sudo -v" e "sudo -k".

Ad esempio, per impostare il timeout per l'utente chrissu 20 minuti, aggiungere quanto segue a /etc/sudoers, o in un file in /etc/sudoers.d(nota: sia l'ordine delle regole in questi file che l'ordine di questi file sono importanti, assicurarsi che non vengano sovrascritti involontariamente da una regola che verrà eseguita in seguito):

Defaults:chris timestamp_timeout=20
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.