Stejně jako většina věcí v systému Linux je příkaz sudo velmi konfigurovatelný. Můžete mít sudo spouštět konkrétní příkazy bez požadavku na heslo, omezit konkrétní uživatele pouze na schválené příkazy, protokolovat příkazy spouštěné sudo a další.
Chování příkazu sudo je řízeno souborem / etc / sudoers ve vašem systému. Tento příkaz musí být upraven pomocí příkazu visudo, který provádí kontrolu syntaxe, aby nedošlo k náhodnému rozbití souboru.
Určete uživatele s oprávněním Sudo
Uživatelský účet, který vytvoříte během instalace Ubuntu, je označen jako účet správce, což znamená, že může používat sudo. Jakékoli další uživatelské účty, které vytvoříte po instalaci, mohou být buď administrátorské nebo standardní uživatelské účty - standardní uživatelské účty nemají oprávnění sudo.
Typy uživatelských účtů můžete ovládat graficky z nástroje Uživatelské účty Ubuntu. Chcete-li jej otevřít, klikněte na své uživatelské jméno na panelu a vyberte Uživatelské účty nebo v pomlčce vyhledejte Uživatelské účty.
Nechte Sudo zapomenout heslo
Ve výchozím nastavení si sudo pamatuje vaše heslo 15 minut po jeho zadání. Proto při provádění více příkazů pomocí sudo v rychlém sledu musíte zadat heslo pouze jednou. Pokud se chystáte umožnit někomu jinému používat váš počítač a chcete, aby si sudo při příštím spuštění vyžádalo heslo, proveďte následující příkaz a sudo vaše heslo zapomene:
sudo –k
Vždy požádat o heslo
Pokud budete raději vyzváni při každém použití sudo - například pokud mají k vašemu počítači pravidelně přístup další lidé - můžete zcela vypnout chování při zapamatování hesla.
Toto nastavení, stejně jako ostatní nastavení sudo, je obsaženo v souboru / etc / sudoers. Spusťte příkaz visudo v terminálu a otevřete soubor pro úpravy:
sudo visudo
Navzdory svému názvu je tento příkaz výchozí pro nový uživatelsky přívětivý nano editor namísto tradičního editoru vi v Ubuntu.
Přidejte následující řádek pod ostatní výchozí řádky v souboru:
Výchozí nastavení timestamp_timeout = 0
Stisknutím Ctrl + O soubor uložte a stisknutím Ctrl + X zavřete Nano. Sudo vás nyní vždy vyzve k zadání hesla.
Změňte časový limit hesla
Chcete-li nastavit jiný časový limit hesla - buď delší, například 30 minut, nebo kratší, například 5 minut, postupujte podle výše uvedených kroků, ale pro timestamp_timeout použijte jinou hodnotu. Číslo odpovídá počtu minut, po které si sudo zapamatuje vaše heslo. Chcete-li, aby si sudo pamatovalo vaše heslo po dobu 5 minut, přidejte následující řádek:
Výchozí nastavení timestamp_timeout = 5
Nikdy nepožádejte o heslo
Můžete také mít sudo, aby nikdy nepožadovalo heslo - pokud jste přihlášeni, každý příkaz, kterému předponujete sudo, bude spuštěn s oprávněním root. Chcete-li to provést, přidejte následující řádek do souboru sudoers, kde uživatelské jméno je vaše uživatelské jméno:
uživatelské jméno ALL = (ALL) NOPASSWD: ALL
Můžete také změnit řádek% sudo - tedy řádek, který umožňuje všem uživatelům ve skupině sudo (známému také jako uživatelé správce) používat sudo - aby všichni uživatelé správce nevyžadovali hesla:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Spouštění konkrétních příkazů bez hesla
Můžete také určit konkrétní příkazy, které při spuštění se sudo nikdy nebudou vyžadovat heslo. Místo použití „VŠE“ po NOPASSWD výše určete umístění příkazů. Například následující řádek umožní vašemu uživatelskému účtu spouštět příkazy apt-get a shutdown bez hesla.
uživatelské jméno ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
To může být užitečné zejména při spouštění konkrétních příkazů pomocí sudo ve skriptu.
Umožnit uživateli spouštět pouze konkrétní příkazy
I když můžete zakázat konkrétní příkazy a zabránit uživatelům v jejich spouštění pomocí sudo, není to příliš efektivní. Můžete například určit, že uživatelský účet nebude moci spustit příkaz vypnutí pomocí sudo. Ale tento uživatelský účet mohl spustit příkaz cp pomocí sudo, vytvořit kopii příkazu shutdown a vypnout systém pomocí kopie.
Účinnějším způsobem je přidání konkrétních příkazů na bílou listinu. Můžete například dát standardnímu uživatelskému účtu oprávnění k použití příkazů apt-get a shutdown, ale už ne. Chcete-li tak učinit, přidejte následující řádek, kde standarduser je uživatelské jméno uživatele:
standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
Následující příkaz nám řekne, jaké příkazy může uživatel spustit pomocí sudo:
sudo -U standarduser –l
Protokolování přístupu Sudo
Veškerý přístup sudo můžete přihlásit přidáním následujícího řádku. / var / log / sudo je jen příklad; můžete použít libovolné umístění souboru protokolu, které se vám líbí.
Výchozí logfile = / var / log / sudo
Zobrazte obsah souboru protokolu pomocí příkazu, jako je tento:
sudo cat / var / log / sudo
Mějte na paměti, že pokud má uživatel neomezený sudo přístup, může tento uživatel odstranit nebo upravit obsah tohoto souboru. Uživatel by také mohl získat přístup ke kořenovému řádku se sudo a spustit příkazy, které by nebyly zaznamenány. Funkce protokolování je nejužitečnější ve spojení s uživatelskými účty, které mají omezený přístup k podmnožině systémových příkazů.