Domovská » jak » Jaký je rozdíl mezi Sudo a Su v Linuxu?

    Jaký je rozdíl mezi Sudo a Su v Linuxu?

    Pokud jste uživatel Linuxu, pravděpodobně jste viděli odkazy na sudo a su. Články o nástrojích How-To Geek a jinde instruují uživatele Ubuntu, aby používali sudo a další uživatele Linuxových distribucí k použití su, ale jaký je rozdíl?

    Sudo a su jsou dva různé způsoby získání oprávnění root. Každý z nich funguje jiným způsobem a různé distribuce Linuxu používají ve výchozím nastavení různé konfigurace.

    Kořenový uživatel

    Obě su a sudo se používají ke spouštění příkazů s kořenovými oprávněními. Uživatel root je v zásadě ekvivalentní uživateli správce systému Windows - uživatel root má maximální oprávnění a může do systému něco udělat. Normální uživatelé v systému Linux pracují se sníženými oprávněními - například nemohou instalovat software nebo zapisovat do systémových adresářů.

    Chcete-li provést něco, co vyžaduje tato oprávnění, musíte je získat pomocí su nebo sudo.

    Su vs. Sudo

    Příkaz su se přepne na super uživatele - nebo uživatele root - když jej provedete bez dalších možností. Budete muset zadat heslo účtu root. Nejedná se však o vše o příkaz su, ale můžete jej použít k přepnutí na libovolný uživatelský účet. Pokud spustíte su bob , budete vyzváni k zadání hesla společnosti Bob a shell se přepne na uživatelský účet společnosti Bob.

    Jakmile dokončíte spouštění příkazů v kořenovém shellu, měli byste zadat výstup opustit kořenový shell a vrátit se do režimu s omezenými oprávněními.

    Sudo spouští jeden příkaz s oprávněním uživatele root. Při spuštění příkaz sudo, systém vás před spuštěním vyzve k zadání hesla vašeho aktuálního uživatelského účtu příkaz jako uživatel root. Ve výchozím nastavení si Ubuntu pamatuje heslo po dobu patnácti minut a znovu nepožádá o heslo, dokud nebudou patnáct minut.

    To je hlavní rozdíl mezi su a sudo. Ne vás přepne na kořenový uživatelský účet a vyžaduje heslo kořenového účtu. Sudo spouští jediný příkaz s oprávněním uživatele root - nepřepíná uživatele root nebo nevyžaduje samostatné uživatelské heslo uživatele.

    Ubuntu vs. ostatní distribuce Linuxu

    Příkaz su je tradiční způsob získání oprávnění root na Linuxu. Příkaz sudo existuje již delší dobu, ale Ubuntu je první populární distribuce Linuxu, která se ve výchozím nastavení používá pouze pro sudo. Při instalaci Ubuntu je vytvořen standardní kořenový účet, ale žádné heslo není přiřazeno. Nemůžete se přihlásit jako root, dokud přiřadíte heslo kořenovému účtu.

    Existuje několik výhod použití sudo namísto su ve výchozím nastavení. Uživatelé Ubuntu musí pouze poskytovat a zapamatovat si jedno heslo, zatímco Fedora a další distribuce vyžadují vytvoření samostatných hesel pro root a uživatelské účty během instalace.

    Další výhodou je, že odrazuje uživatele od přihlášení jako uživatel root - nebo pomocí su získat kořenový shell - a udržet kořenový shell otevřený k tomu, aby vykonával svou normální práci. Spouštění méně příkazů jako root zvyšuje zabezpečení a zabraňuje náhodným změnám v systému.

    Distribuce založené na Ubuntu, včetně Linux Mint, také ve výchozím nastavení používají sudo místo su.

    Několik triků

    Linux je flexibilní, takže to nebude trvat mnoho práce, aby su pracoval podobně jako sudo - nebo naopak.

    Chcete-li spustit jediný příkaz jako kořenový uživatel s su, spusťte následující příkaz:

    su -c 'příkaz'

    Toto je podobné spuštění příkazu s sudo, ale místo hesla vašeho aktuálního uživatelského účtu budete potřebovat heslo účtu kořenového účtu.

    Chcete-li získat kompletní, interaktivní kořenový shell s sudo, spusťte sudo -i.

    Budete muset zadat heslo aktuálního uživatelského účtu místo hesla kořenového účtu.

    Povolení kořenového uživatele v Ubuntu

    Chcete-li zapnout kořenový uživatelský účet v Ubuntu, použijte následující příkaz pro nastavení hesla. Mějte na paměti, že Ubuntu to doporučuje.

    sudo passwd kořen

    Sudo vás před zadáním nového hesla vyzve k zadání hesla vašeho aktuálního uživatelského účtu. Pomocí nového hesla se přihlaste jako root z příkazu pro přihlášení k terminálu nebo pomocí příkazu su. Nikdy byste neměli užívat úplné grafické prostředí jako kořenový uživatel - je to velmi špatná bezpečnostní praxe a mnoho programů odmítne pracovat.

    Přidání uživatelů do souboru Sudoers

    Pouze účty typu administrátora v Ubuntu mohou spustit příkazy s sudo. Typ okna uživatelského účtu můžete změnit v okně Konfigurace uživatelských účtů.

    Ubuntu automaticky označuje uživatelský účet vytvořený během instalace jako účet správce.

    Pokud používáte jinou distribuci Linuxu, můžete udělit uživateli oprávnění používat sudo spuštěním visudo příkaz s oprávněním uživatele root (tak spusťte su nejprve nebo použít su -c)..

    Přidejte následující řádek do souboru a nahraďte jej uživatel s názvem uživatelského účtu:

    uživatel ALL = (ALL: ALL) ALL

    lis Ctrl-X a pak Y uložte soubor. Můžete také přidat uživatele do skupiny zadané v souboru. Uživatelé ve skupinách uvedených v souboru budou mít automaticky oprávnění sudo.

    Grafické verze Su

    Linux také podporuje grafické verze su, které vyžadují heslo v grafickém prostředí. Můžete například spustit následující příkaz, abyste dostali výzvu s grafickým heslem a spustili prohlížeč souborů Nautilus s oprávněním uživatele root. lis Alt-F2 spustit příkaz z grafického spouštěcího dialogu bez spuštění terminálu.

    gksu nautilus

    Příkaz gksu má také několik dalších triků v rukávu - zachovává aktuální nastavení plochy, takže grafické programy nebudou vypadat mimo místo, kdy je spustíte jako jiný uživatel. Programy, jako je gksu, jsou preferovaným způsobem spuštění grafických aplikací s oprávněním uživatele root.

    Gksu používá v závislosti na distribuci Linuxu, který používáte, buď su, nebo sudo backend.


    Nyní byste měli být připraveni se setkat jak s su, tak i sudo! Budete se setkávat s oběma, pokud použijete jiné distribuce Linuxu.