In Linux, il comando sudo ci consente di eseguire attività amministrative. Tuttavia, potresti aver notato che devi fornire nuovamente la password sudo dopo un certo periodo di inattività. Si verifica a causa del limite di tempo per la tua sessione sudo che è di 15 minuti per impostazione predefinita. Se esegui un comando sudo insieme a una password, i tuoi privilegi sudo rimarranno per 15 minuti. Dopo questi 15 minuti, ti verrà chiesto di fornire nuovamente la password sudo per i successivi comandi sudo.
In alcuni casi, potresti voler modificare il limite di tempo predefinito per la sessione sudo, ovvero aumentarlo o diminuirlo. Ad esempio, puoi aumentare il limite di timeout per la sessione sudo se sei l'unica persona che ha accesso fisico al sistema. Allo stesso modo, puoi ridurre il limite di tempo per la sessione sudo o impostarlo su 0, in modo che ti venga sempre richiesta una password quando esegui un comando sudo.
In questo articolo spiegheremo come specificare un limite di tempo per la sessione di sudo. Tutto ciò che serve è eseguire una semplice configurazione in /etc/sudoers file.
Si noti che i comandi ei processi discussi in questo articolo sono stati testati su Ubuntu 20.04 LTS (Focal Fossa). Puoi eseguire la stessa procedura anche per le versioni precedenti di Ubuntu.
Specifica l'ora X per una sessione di sudo
Nella procedura seguente, specificheremo il limite di tempo per la sessione di sudo in 5 minuti. Segui i passaggi seguenti per specificare il limite di tempo per la tua sessione di sudo quanto vuoi:
Innanzitutto, apri il Terminale utilizzando Ctrl+Alt+T scorciatoia da tastiera. Quindi esegui il seguente comando in Terminale per modificare /etc/sudoers file.
$ sudo visudo
Fornisci la password per sudo.
Nota:non modificare mai /etc/sudoers file con qualsiasi editor di testo; utilizzare invece il comando visudo come descritto sopra. Il motivo è che, a differenza di altri editor di testo, visudo controlla la sintassi e gli errori nel file. In questo modo ti evita di apportare modifiche errate che potrebbero causare gravi ripercussioni.
Il file/etc/sudoers per impostazione predefinita si aprirà nell'editor Nano. Cerca la seguente riga in /etc/sudoers file:
Defaults env_reset
Alla fine della riga precedente, aggiungi timestamp_timeout=x così:
Defaults env_reset timestamp_timeout=x
Dove x è il valore di timeout per la sessione sudo. Ad esempio, per impostare un valore di timeout per la sessione sudo su 5 minuti, imposta il valore di x su 5.
Defaults env_reset,timestamp_timeout=5
Salva e chiudi il file utilizzando Ctrl+O e Ctrl+X contemporaneamente. Ora prova a eseguire qualsiasi comando sudo (come sudo apt update). Ora attendi da 2 a 3 minuti ed esegui di nuovo il comando sudo e non ti verrà chiesta la password. Tuttavia, dopo 5 minuti, qualsiasi comando sudo eseguito ti chiederà la password sudo.
Se vuoi che il sistema chieda una password ogni volta che esegui il comando sudo, imposta il valore di x su 0. Allo stesso modo, se vuoi che il sistema non chieda mai la password sudo, imposta il valore di x su -1 .
Imposta la sessione sudo in modo che duri fino alla chiusura del Terminale
Puoi lasciare che la tua sessione sudo duri con un semplice comando fino a quando non chiudi il terminale, indipendentemente da quanto tempo il terminale rimane aperto. Dopo aver eseguito questo comando, non ti verrà chiesto di fornire la password per nessun comando che necessita dei privilegi sudo:
$ sudo -s
Termina la sessione di sudo
Dopo aver fornito la password sudo, puoi terminare la sessione sudo anche prima del limite di tempo specificato in /etc/sudoers file. Ecco il comando per farlo:
$ sudo –k
Ricorda però che questo comando non funzionerà, se hai precedentemente eseguito il comando “sudo –s” durante la sessione di Terminale.
Questo è tutto ciò che c'è da fare! In questo articolo hai imparato come gestire il limite di timeout per una sessione sudo. Modifica il file/etc/sudoers per allungare o accorciare il limite di timeout, oppure utilizzare altri comandi menzionati in questo articolo per terminare la sessione sudo o farla durare fino all'esaurimento della sessione terminale.