In che modo sudo ricorda che hai già inserito la password di root?


27

Quando si usa sudo su Linux, richiede la password di root, ma solo la prima volta che lo si esegue. Se esegui un altro comando sudo, ricorda che hai già inserito la password in precedenza e non la richiede:

thomas@ubuntu:~$ sudo id
[sudo] password for thomas: ******
uid=0(root) gid=0(root) groups=0(root)
thomas@ubuntu:~$ sudo id
uid=0(root) gid=0(root) groups=0(root)

Come lo fa sudo? Dove sono archiviate queste informazioni? La mia idea è che si ricordi l'id terminale (come pts / 1), ma dove è memorizzato? Il primo processo sudo termina quando viene terminato con il comando, giusto?

So che sudo è un programma setuid, quindi ha i privilegi di root per tutto il tempo, ma non riesco ancora a pensare a un buon posto per archiviare informazioni che un utente ha già inserito una password. C'è qualche processo daemon coinvolto?


1
C'è una buona panoramica di come funziona sudo qui: aplawrence.com/Basics/sudo.html Descrive in dettaglio il comportamento di sudo ricordando le password (ad esempio il timeout predefinito è 5 minuti), sebbene non copra le specifiche di come sudo ricorda la password . Comunque interessante, comunque.

12
Solo una piccola correzione, sudo ti chiede la tua password, non la password di root

Risposte:


16

Dove sono archiviate queste informazioni?

Probabilmente è sotto /var/db/sudoo /var/run/sudoe troverai probabilmente directory di nomi utente con file ordinati secondo il numero tty.

I privilegi concessi, incluso il tempo di durata delle sessioni prima che sia necessario immettere nuovamente la password, dipendono dalla configurazione dei sudoers. Ci sono impostazioni per concedere / limitare molte cose diverse, ma quelle non sono memorizzate in questi file che memorizzano solo i timestamp. Quanto dura una sessione o quando sudo deve richiedere nuovamente la password, è determinato da un delta dell'ora corrente e dal timestamp della sessione in questa directory e da quanto tempo è impostato sudo per consentire la durata di una sessione.


2
Per quanto tempo, dai documenti di Ubuntu : "Quando si utilizza sudo, la password viene memorizzata per impostazione predefinita per 15 minuti."

11

Prova man sudoa dare un'occhiata alla sezione FILES:

/ var / lib / sudo Directory contenente timestamp

E al SECURITY NOTES

sudo controllerà la proprietà della sua directory timestamp (/ var / lib / sudo di default) [...]

(pagine man di Debian 6.0.4)

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.