Tento článek zkoumá rozdíly mezi sudo a su příkazy v Linuxu. Můžete se také podívat na toto video, kde se dozvíte o těchto příkazech. Trvale se stát root pomocí su je dobře známé „ne-ne“ ve vesmíru *nix. Proč? Protože se stanete rootem pomocí su znamená, že jste root, což je stejné jako přihlášení do terminálu jako uživatel root s heslem root. A to je nebezpečné z mnoha důvodů.
[ Mohlo by se vám také líbit: Základy příkazového řádku Linuxu:sudo ]
Práce jako root znamená, že máte pravomoc:
- Odstraňte některé nebo všechny soubory
- Změnit oprávnění některého nebo všech souborů
- Změňte úroveň běhu systému
- Změnit uživatelské účty
- Připojte nebo odpojte souborové systémy
- Odeberte nebo nainstalujte software
- Vytvářejte, odebírejte a upravujte systémy souborů
V zásadě můžete jako uživatel root se systémem dělat cokoli. Je to všemocný administrativní účet. A na rozdíl od jiných více upovídaných operačních systémů neuvidíte:"Jste si jistý?" dialogu, abyste se ujistili, že rm -rf * příkaz, který jste právě vydali, byl v /opt/tmp spíše než na / . Jak si dokážete představit, chyby provedené jako uživatel root mohou být nevratné a zničující. Existuje alternativa:sudo .
sudo
sudo , což je zkratka pro superuser dělat nebo náhradní uživatel dělat , je příkaz, který spouští výzvu se zvýšenými oprávněními bez nutnosti měnit vaši identitu. V závislosti na vašem nastavení v /etc/sudoers můžete zadávat jednotlivé příkazy jako root nebo jako jiný uživatel. Chcete-li pokračovat ve spouštění příkazů s oprávněním root, musíte vždy použít příkaz sudo. Pokud například chcete nainstalovat Nginx balíček, spustíte:
$ dnf install nginx Ale pokud nejste root nebo ve skupině sudo, uvidíte chybu. Místo toho, pokud spustíte tento příkaz:
$ sudo dnf install nginx Budete požádáni o zadání hesla a poté můžete příkaz spustit, pokud jste součástí skupiny sudo.
Jednoduchý způsob, jak přepnout na interaktivní relaci jako uživatel root, je následující:
$ sudo -i Teorie za používáním sudo je taková, že vydání příkazu sudo před jakýmkoli příkazem, který spustíte, vás nutí více přemýšlet o tom, co děláte, a doufejme, že budete dělat méně chyb s účtem, který má neomezenou moc.
su
su , na druhé straně, je zkratka pro přepnout uživatele nebo náhradního uživatele . V podstatě přecházíte na konkrétního uživatele a potřebujete heslo pro uživatele, na kterého přecházíte. Nejčastěji je uživatelským účtem, na který přepnete, účet root, ale může to být jakýkoli účet v systému.
Pokud například zadáte:
$ su -
Ve výše uvedeném příkladu přecházíte na root a potřebujete heslo root. (- ) switch vám poskytuje prostředí root (proměnné cesty a shellu), spíše než aby vám jednoduše poskytoval oprávnění uživatele root pro jeden příkaz a zároveň si ponechal své vlastní prostředí.
$ su bryant Ve druhém příkladu přecházíte na bryant , a proto potřebujete bryantovo heslo, pokud nejste root.
Pokud chcete přejít na bryant uživatelský účet včetně bryant's path a proměnných prostředí, použijte (- ) přepínač:
$ su - bryant
(- ) má stejný účinek jako přihlášení do systému přímo pomocí tohoto uživatelského účtu. V podstatě se stáváte tohoto uživatele.
Sbalit
Shrnutí toho, co jste se naučili.
sudoumožňuje zadávat příkazy jako jiný uživatel bez změny identity- Musíte mít záznam v
/etc/sudoersk provedení těchto omezených oprávnění sudo -ivás přenese do interaktivní relace jako rootsuznamená přejít na konkrétního uživatele- Stačí zadat
supřepne na uživatele root sudopožádá o vaše heslo, zatímcosupožádá o heslo uživatele, na kterého přecházíte
[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ]
Ale kdy použijete jeden, ne jiný? Od sudo politika je definována v /etc/sudoers , to může poskytnout výkonné ovládací prvky oprávnění. Od sudo dokáže v podstatě vše, co su může, řekl bych, že je nejlepší zůstat u sudo pokud nepracujete s některými staršími kódy, které vyžadují su příkaz.