Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
root_sudo [2014/05/12 09:24]
Martin Šácha
root_sudo [2019/02/25 18:20] (aktuální)
Řádek 1: Řádek 1:
 +====== 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// //
 +<​code>​
 +sudo chown bob:bob /home/bob/*
 +</​code>​Příklad #2// //
 +<​code>​
 +sudo /​etc/​init.d/​networking restart
 +</​code>​
 +
 +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:
 +<​code>​
 +sudo rm /​home/​uživatel/​.{ICE,​X}authority
 +</​code>​
 +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:​
 +
 +<​code>​
 +sudo apt-get install gksu
 +</​code>​
 +
 +
 +  * 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:
 +<​code>​
 +sudo -i
 +</​code>​
 +
 +  * 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ř:
 +<​code>​
 +Permission denied
 +</​code>​
 +nebo
 +<​code>​
 +You need to be root to perform this command.
 +</​code>​
 +
 +====== 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 <​uživatel>​ sudo'',​ kde ''<​uživatel>''​ 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:
 +<​code>​
 +sudo passwd root
 +</​code>​
 +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:
 +<​code>​
 +sudo passwd -l root
 +</​code>​
 +
 +====== Odkazy ======
 +  * [[https://​wiki.ubuntu.com/​RootSudo|Originál návodu]] {{.:​en.png}}
 +  * [[http://​www.psychocats.net/​ubuntu/​graphicalsudo|Running Sudo Graphically]] {{.:​en.png}}