Úvod
sudo
a su
příkazy patří do skupiny příkazů, se kterými se setká každý uživatel Linuxu. Protože jsou si podobné v syntaxi a mají překrývající se funkce, mnoho nových uživatelů si není jisto, kdy použít jeden přes druhý.
V tomto tutoriálu se dozvíte vše o rozdílech mezi su
a sudo
.
sudo vs su
Oba su
a sudo
zvýšit oprávnění přiřazená aktuálnímu uživateli.
Hlavní rozdíl mezi těmito dvěma je, že su
vyžaduje heslo cílového účtu, zatímco sudo
vyžaduje heslo aktuálního uživatele. Proto je mnohem bezpečnější použít sudo
protože nezahrnuje výměnu citlivých informací.
Navíc je vhodné držet se sudo
při provádění úloh, které vyžadují oprávnění root. Tímto způsobem získá aktuální uživatel oprávnění pouze pro zadaný příkaz. Na druhou stranu su
zcela přepne na uživatele root a vystaví celý systém potenciálním náhodným změnám.
Jak používat příkaz su
su
příkaz znamená náhradní uživatel a většinou se používá pro přepínání z jednoho uživatele na druhého. Provádí to spuštěním přihlašovacího shellu v aktuálním adresáři a prostředí (su
) nebo úplnou změnou nastavení cílového uživatele (su -
).
Hlavní syntaxe je:
su [user_name]
nebo
su - [user_name]
Pokud je příkaz použit bez argumentu, přepne se na superuživatele (root ) účet.
Jak funguje příkaz su?
Chcete-li vyvolat shell jiného uživatele v pracovním adresáři/uživatelském prostředí, použijte su
příkaz (bez pomlčky).
Chcete-li například pracovat jako uživatel s názvem phoenixnap , spustit:
su phoenixnap
Poté zadejte heslo pro phoenixnap účtu a stiskněte Enter .
Shell by se měl změnit a zobrazit, že nyní máte přístup operátora k určenému účtu. Uživatelské prostředí však zůstává stejné, jako na obrázku níže:
Jak funguje příkaz su – [pomlčka]?
Chcete-li přejít k jinému uživateli a přepnout na toto cílové uživatelské prostředí, použijte su -
příkaz.
Proto přepněte na fénixnap uživatele a přesuňte se do jeho přihlašovacího prostředí, zadejte příkaz:
su - phoenixnap
Zadejte heslo pro phoenixnap účtu a stiskněte Enter potvrdit. Výstup by měl vypadat podobně jako na následujícím obrázku:
Jak používat příkaz sudo
sudo
se používá jako předpona příkazů Linuxu, která umožňuje přihlášenému uživateli spouštět příkazy vyžadující oprávnění root. Na rozdíl od su
, sudo
příkaz v Linuxu vyžaduje zadání hesla pro uživatele spouštějícího příkaz.
Všechny administrativní a spustitelné úlohy vyžadují maximální oprávnění (držené uživatelem root). V takových případech se doporučuje použít sudo
.
Hlavní syntaxe je:
sudo [command]
Než systém provede příkaz, požádá o heslo aktuálního uživatele.
Mějte na paměti, že sudo
tuto možnost mohou používat pouze uživatelé, kteří patří do skupiny sudoers skupina.
Přidání uživatele do skupiny Sudoers
Aby uživatel mohl provést příkaz, který vyžaduje sudo
prefix, musí být součástí sudoers skupina.
Chcete-li přidat uživatele do sudoers group, spusťte následující příkaz (jako root nebo účet, který již má oprávnění sudo):
usermod -aG sudo [user_name]
Chcete-li například přidat účet phoenixnap , napsali byste:
sudo usermod -aG sudo phoenixnap
Chcete-li zobrazit seznam účtů, které patří do skupiny sudoers, spusťte:
sudo getent group sudo
Výstup by měl zobrazovat účet přidaný v předchozím kroku:
Jak sudo a su fungují v různých distribucích Linuxu
su
je starší, ale plně vybavený příkaz, který je součástí všech distribucí Linuxu. Je to tradiční způsob přepnutí na účet root.
Linux nedoporučuje pracovat jako root, protože to může způsobit nežádoucí změny v celém systému, a navrhuje použití sudo
namísto. Z tohoto důvodu všechny založené na Ubuntu vydání jsou pouze sudo , což znamená, že účet root není ve výchozím nastavení aktivní.
Při instalaci operačního systému Ubuntu vytvoříte uživatele automaticky označeného jako součást skupiny sudoers. Neexistuje však nastavení účtu root. Chcete-li povolit uživatele root, musíte jej aktivovat ručně.
Na druhou stranu jiné distribuce Linuxu, jako je Fedora, si po instalaci vytvoří root a uživatelský účet.
Povolení účtu root
Pokud používáte distribuci založenou na Ubuntu a pokusíte se přepnout na uživatele root, výstup vás informuje, že došlo k selhání ověření .
Chcete-li aktivovat uživatele root, spusťte příkaz passwd:
sudo passwd root
Dále výstup požádá o nastavení hesla pro uživatele root. Zadejte a znovu zadejte zabezpečené heslo a poté stiskněte Enter. Systém by vás měl upozornit, že heslo bylo úspěšně aktualizováno.
Ověřte, že je uživatel root aktivní, přepněte na něj jeho přihlašovací shell pomocí su -
.
Další funkce
Ačkoli sudo
je hlavně spojen se spouštěním příkazů s právy root, lze jej také použít ke změně uživatele root. Přepněte na uživatele root a získejte prostředí root pomocí:
sudo -i
Zadejte heslo aktuálně používaného uživatele. Nyní byste měli být v kořenovém prostředí.
Podobně su
může také fungovat jako sudo
a spusťte jeden příkaz jako root:
su -c [command]