zdroj: wiki.ubuntu.cz

V Linuxu (a Unixu obecně) existuje superuživatel jménem root. Obdobou roota ve Windows je Administrátor. Tento správce počítače může dělat naprosto cokoli, takže provádění běžné denní práce pod účtem správce může být velice nebezpečné. Můžete napsat nesprávně příkaz a zhroutit si tak systém. Proto je důležité používat jen uživatele s takovými oprávněními, která jsou zrovna pro daný úkol potřeba. V některých případech je třeba použít účet roota, ale většinou (pro klasickou práci na počítači) úplně postačuje běžný uživatel.

Výchozím nastavením Ubuntu je, že účet roota je zamčen, deaktivován. To znamená, že se nemůžete přihlásit jako root anebo použít příkaz su (příkaz pro změnu identity). Místo toho instalátor nastaví systém tak, aby správu počítače mohl provádět uživatel vytvořený při instalaci (tzn. prvně vytvořený uživatel), a to pomocí příkazu sudo. Ostatní uživatelé příkaz sudo používat nemohou, ale toto právo se jim může udělit.

To znamená, že v Terminálu můžete používat sudo pro příkazy vyžadující rootovská oprávnění. Všechny programy v menu, které budou vyžadovat heslo (např. aplikace v menu Systém → Správa), použijí grafickou podobu sudo (zešedne obrazovka a objeví se políčko pro zadání hesla). Když sudo žádá o heslo, žádá o VAŠE UŽIVATELSKÉ heslo - to znamená, že žádné rootovské heslo není potřeba.

 

Informace

  • Heslo je standardně uloženo po dobu 15 minut. Po uplynutí této doby budete muset zadat heslo znovu.
  • Při psaní hesla se vaše heslo nebude vůbec ukazovat na obrazovce, a to ani jako řada hvězdiček (******) - důvodem je vaše bezpečnost, aby vaše heslo nemohl žádný člověk odpozorovat. Přesto se vámi zadané heslo skutečně píše!

  • Pro spuštění grafických konfiguračních nástrojů s využitím sudo (s využitím správcovských oprávnění) stačí úplně obyčejně spustit program z nabídky. Program, pokud bude třeba, si o heslo sám řekne.

  • Ke spuštění programů, které jsou normálně spouštěné uživatelem (např. gedit), s administrátorskými právy sudo, stiskněte ALT+F2 a spusťte gksudo gedit.
    (i) sudo se používá u příkazů pracujících v Terminálu, gksudo se používá u spouštění grafických programů.

  • Uživatelé Kubuntu používají kdesu jako náhradu za gksudo.

  • K použití sudo v příkazové řádce, napište slovo sudo před daný příkaz, jak ukazují příklady:
    Příklad #1

    sudo chown bob:bob /home/bob/*

    Příklad #2

    sudo /etc/init.d/networking restart
  • NIKDY nepoužívejte "sudo" pro start grafických programů. Vždycky byste měli použít "gksudo" (v GNOME, popřípadě v XFCE) nebo "kdesu" (v KDE) k spuštění takovýchto programů. Jinak se může stát, že při dalším přihlášení do systému nemusíte uspět. Jestliže k tomu dojde a při přihlašování se zobrazí tato chybová hláška: "Unable to read ICE authority file", přihlaste se použitím "záchranného terminálu" a spusťte příkaz:

    rm /home/uživatel/.{ICE,X}authority

    místo uživatel napište své přihlašovací jméno.

  • K startu administrátorské konzole (ve které můžete používat administrátorské příkazy aniž byste každý museli opatřit předponou sudo) použijte:

    sudo -i
  • Je-li ke spuštění programu potřeba sudo, program vás o tom při pokusu o spuštění bez něj zpravidla informuje, jako např:

    Permission denied
    nebo
    You need to be root to perform this command.

 

Přidání uživatelům právo spustit sudo

Pro povolení dalšímu uživateli spravovat počítač pomocí sudo, otevřete nástroj Systém → Správa → Uživatelé a skupiny. Klikněte na požadovaného uživatele → Vlastnosti → Uživatelská oprávnění. Zaškrtněte Spravovat systém.

(i) V Terminálu lze to samé provést příkazem: sudo adduser <uživatel> admin, kde <uživatel> nahradíte přihlašovacím jménem uživatele.

 

Snadné používání sudo z Nautilu

Pokud si nainstalujete balík nautilus-gksu a přihlásíte se znova, získáte možnost snadno spouštět aplikace a manipulovat se soubory pod správcovským oprávněním. Na libovolné složce či souboru pak v Nautilu v kontextové nabídce na pravém tlačítku myši přibude položka Otevřít jako správce.

Pokud spustíte program nebo otevřete složku pod správcovským oprávněním, dejte si pozor na to, abyste program zavřeli hned, jakmile dokončíte potřebnou činnost. Pokud byste s daným programem nebo Nautilem pod správcovským oprávněním manipulovali nejen se systémovými soubory ale i se soubory osobními, jejich přístupová práva budou změněna, a vy je pak jako obyčejný uživatel nebudete schopen přečíst.

 

Výhody sudo

Výhody zablokovaného účtu root zahrnují následující:

  • Uživatelé si nemusí pamatovat heslo navíc, které často zapomínají.
  • Obchází se interaktivní přihlášení typu "Já můžu dělat cokoli" - budete dotázáni na heslo před tím než mohou nastat nějaké důležité změny, což by vás mělo donutit se zamyslet nad důsledky vašeho jednání.

  • Sudo přidává záznam do protokolů po každém příkazu (ve /var/log/auth.log). Pokud něco pokazíte, můžete se podívat do historie a tam zjistit, které příkazy byly provedené.

  • Každý útočník, který zkusí útok brutální silou, aby se vám naboural do počítače, bude vždy nejdříve zkoušet účet root. Je to totiž jediný účet, o kterém ví, že existuje. Neví však, jaká jsou jména dalších uživatelů.

  • Umožňuje jednoduché přiřazení administrátorských práv, po kratší nebo delší období, přidáním a odebráním uživatelů ze skupin, přičemž není narušena bezpečnost rootovského účtu.
  • Sudo může být nastaveno s mnohem detailnějšími bezpečnostními politikami.

 

Nevýhody sudo

Přestože pro uživatele stolních počítačů jsou výhody užívání sudo obrovské a převažují nad nevýhodami, existují zde možné situace, které je nezbytné zmínit:

  • Přesměrování výstupu příkazů spuštěných se sudo může nachytat některé začínající uživatele. Například sudo ls > /root/soubor nebude fungovat, protože je to shell, který se snaží zapsat do onoho souboru (nikoliv spouštěný program). Můžete použít ls | sudo tee /root/soubor. Také můžete poslat celý příkaz shellu spuštěnému pod sudo, např. sudo bash -c "ls > /root/soubor". Nebo si spustit rootovský shell pomocí sudo -i a spustit příkaz tam.

  • Ve spoustě kancelářských prostředí je JEDINÝ lokální uživatel v systému root. Všichni ostatní uživatelé jsou importováni pomocí NSS technik jako je nss-ldap. Pro nastavení pracovní stanice či pro její opravu, v případě výpadku sítě kdy nss-ldap je nefunkční, root je potřeba. To způsobuje, že se systém stává nepoužitelným, dokud není prolomen. Je zde tudíž potřeba jeden lokální uživatel navíc anebo zapnutý účet root.

 

Mylné představy

  • Není sudo méně bezpečné než su?

    • Základní bezpečnostní model je stejný, a tudíž tyto dva systémy sdílejí jejich primární slabosti. Kterýkoli uživatel, co používá su nebo sudo musí být považován za privilegovaného uživatele. Pokud je jeho účet napaden nějakým útočníkem, může útočník získat práva roota zároveň s uživatelem. Uživatelský účet je slabý článek a musí být chráněn stejně pečlivě jako root.
      Obecně řečeno, sudo poskytuje některé vlastnosti, které podněcují určité odlišné pracovní návyky, které mohou mít pozitivní dopad na bezpečnost systému. sudo je běžně používáno na spuštění pouze jediného příkazu, zatímco su je běžně používáno pro otevření konzole a spouštění více příkazů. Přístup sudo redukuje pravděpodobnost nechání rootovské konzole otevřené donekonečna, a povzbuzuje uživatele minimalizovat používání rootovských práv.

  • Nebudu schopen vstoupit do módu jediného uživatele (single-user mode)!

    • Program sulogin v Ubuntu je upraven aby zvládl standardní případ zamknutého rootovského hesla.

  • Nemůžu získat rootovský shell z konzole bez zadání hesla!

    • Uživatelé konzole mají přístup k zavaděči systému a mohou získat správcovský přístup mnoha cestami během zavádění systému. Například specifikováním alternativního init(8) programu. Linuxové systémy nejsou typicky konfigurovány pro bezpečnost v konzoli, a dodatečné kroky (například nastavení hesla roota, hesla zavaděče a hesla BIOSu) jsou nezbytné pro změnu tohoto stavu. Vězte, že uživatelé konzole mají většinou fyzický přístup k počítači, a proto s ním mohou manipulovat i jinými způsoby.

 

Návrat k tradičnímu účtu root

Tohle není doporučeno!

Zvažte raději použití následujícího příkazu:

sudo -i

a nebo

sudo bash

Ten otevře dočasně rootovskou konzoli. Zapnutí účtu root v Ubuntu není ani potřebné ani podporované. Cokoli, co potřebujete udělat jako správce v Ubuntu systému můžete provést pomocí příkazu sudo anebo gksudo.

Do konzole zadejte

sudo passwd root

Poté si program sudo vyžádá heslo aktuálního uživatele a poté dvakrát zadejte nové heslo pro roota.

Pokud je účet root zapnutý a chcete jej vypnout, otevřete terminál a zadejte následující příkaz:

sudo passwd -l root