Když spustíte příkaz sudo v Linuxu, pamatuje si heslo ve výchozím nastavení po dobu 15 minut, což je určeno proměnnou timestamp_timeout v /etc/sudoers soubor. Během této doby tedy můžete spustit jakýkoli jiný příkaz sudo bez zadání hesla. Po 15 minutách nečinnosti sudo vás znovu vyzve k zadání hesla.
Výchozí časový limit však můžete upravit a prodloužit nebo zkrátit podle svých preferencí. Můžete jej také nakonfigurovat tak, aby vždy požadoval heslo nebo jej požadoval jednou za terminálovou relaci nebo zavádění systému. Zde je návod, jak to udělat.
Upravte časový limit hesla sudo v systému Linux
Pro jakékoli změny související se sudem, jako je např udělování práv sudo, přidání nebo nastavení vlastních pravidel atd., musíte upravit /etc/sudoers soubor. Nedoporučuje se však ručně upravovat tento soubor přímo pomocí jakéhokoli textového editoru. Místo toho použijte k úpravě souboru následující příkaz:
sudo visudo
Tento příkaz otevře /etc/sudoers soubor v textovém editoru pro úpravy.
Chcete-li změnit výchozí časový limit hesla sudo (a prodloužit jej nebo zkrátit), přidejte následující řádek na konec souboru a změňte jeho hodnotu na libovolnou dobu (v minutách), na kterou chcete, aby čekal před souborem Časový limit.
Výchozí nastavení timestamp_timeout=x
Řekněme, že chcete zkrátit časový limit hesla sudo na tři minuty, takže přidáte:
Výchozí timestamp_timeout=3
Všimněte si, že termín Výchozí ve výše uvedeném příkazu odkazuje na celosystémová nastavení. Chcete-li použít konfiguraci pouze na konkrétního uživatele, použijte místo toho následující příkaz:
Výchozí: uživatelské jméno timestamp_timeout=x
Vždy se dotázat na heslo sudo
Chcete-li vždy požadovat heslo při každém spuštění příkazu sudo, změňte hodnotu parametru timestamp_timeout proměnná na 0:
Výchozí timestamp_timeout=0
Pamatujte, že tuto změnu můžete provést pouze jako superuživatel. Jako standardní uživatel to můžete provést pomocí následujícího příkazu:
sudo -k
Tento příkaz nevyžaduje heslo sudo. Při příštím spuštění sudo také vyzve k zadání hesla. Pamatujte však, že nepůjde o trvalou změnu. Tento příkaz můžete vyvolat, kdykoli chcete, aby sudo požadovalo heslo.
Vyzvat k zadání hesla správce jednou za terminálovou relaci
Můžete také nechat sudo požádat o heslo jednou za terminálovou relaci. Například, pokud chcete zadat heslo sudo pouze jednou za relaci, přidejte následující řádek do /etc/sudoers soubor:
Výchozí timestamp_timeout = -1
Nyní časové razítko nevyprší, dokud nezavřete terminál. To znamená, že po otevření terminálu budete muset zadat heslo pouze jednou, když spustíte první příkaz sudo.
Alternativní způsob, jak toho dosáhnout, je otevřít shell jako root pomocí následujícího příkazu:
sudo bash
Následující příkaz vás jednou požádá o heslo sudo a poté můžete spouštět všechny následující příkazy bez hesla.
Dotázat se na heslo správce jednou za spuštění systému
Chcete-li, aby sudo požadovalo heslo jednou za spuštění systému, přidejte do souboru následující položky /etc/sudoers soubor:
Výchozí !tty_tickets
Výchozí timestamp_timeout = -1
Ve výše uvedeném příkazu !tty_tickets povolí jediné časové razítko pro všechny relace terminálu, takže heslo sudo budete muset zadat pouze jednou bez ohledu na to, kolik terminálů otevřete. The timestamp_timeout = -1 nastaví heslo sudo tak, aby nikdy nevypršelo, dokud se systém nerestartuje.
Můžeš restartujte počítač se systémem Linux zkontrolovat, zda byly změny uloženy.
Vyladění chování sudo Timeout na Linuxu
Nyní můžete snadno změnit chování sudo timeout a upravit, když vás vyzve k zadání hesla. Všimněte si, že můžete také použít sudo, aniž byste byli vyzváni k zadání hesla. Tuto možnost byste však měli používat pouze v případě, že jste jediným uživatelem, který má přístup do systému; jinak to může být velké bezpečnostní riziko.