GNU/Linux >> Znalost Linux >  >> Linux

Zkoumání rozdílů mezi příkazy sudo a su v systému Linux

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.

  • sudo umožňuje zadávat příkazy jako jiný uživatel bez změny identity
  • Musíte mít záznam v /etc/sudoers k provedení těchto omezených oprávnění
  • sudo -i vás přenese do interaktivní relace jako root
  • su znamená přejít na konkrétního uživatele
  • Stačí zadat su přepne na uživatele root
  • sudo požádá o vaše heslo, zatímco su požá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.


Linux
  1. Naučte se rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  2. Jak povolit uživateli používat sudo v Ubuntu Linux

  3. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  1. Rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  2. Rozdíl mezi uživatelem Sudo a uživatelem root?

  3. Jak vytvořit uživatele Sudo v Rocky Linux 8

  1. Příklady příkazů sudo v Linuxu

  2. Jaké jsou rozdíly mezi lsof a netstat na linuxu?

  3. Rozdíl mezi příkazy 'ifconfig' a ​​'ip'