====== Root sudo ====== {{.:IconHammer2.png}} V Linuxu (a Unixu obecně) existuje superuživatel jménem **root**. Obdobou **roota** ve Windows je **Administrátor (správce)**. 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**. {{.:iconcircle.png}} 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. {{.:password.png}} To znamená, že v [[Terminál|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 %%sudo gedit%%.\ * 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 Pokus se při přihlašování zobrazí 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: sudo rm /home/uživatel/.{ICE,X}authority místo ''uživatel'' napište své přihlašovací jméno. Od verze Ubuntu 13.04 již není balík ''gksu'' potřeba a tedy není ani v základní instalaci, pro použití příkazu "gksudo" musíte tento balík doinstalovat: sudo apt-get install gksu * 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 [[Terminál|Terminál]] a napište příkaz: ''sudo adduser sudo'', kde '''' nahradíte přihlašovacím jménem uživatele. ====== Snadné používání sudo z Nautilu ====== {{.:icon-nautilus.png}} Pokud si [[Instalace programů|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 [[Nautilus|Nautilu]] v kontextové nabídce na pravém tlačítku myši přibude položka **Otevřít jako správce**. {{.:warning.png}} 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 ====== {{.:stop.png}} **Tohle není doporučeno!** 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''. Pro odemknutí účtu root 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 ====== Odkazy ====== * [[https://wiki.ubuntu.com/RootSudo|Originál návodu]] {{.:en.png}} * [[http://www.psychocats.net/ubuntu/graphicalsudo|Running Sudo Graphically]] {{.:en.png}}