GNU/Linux >> Znalost Linux >  >> Linux

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

Zavřeno . Tato otázka vyžaduje podrobnosti nebo jasnost. Momentálně nepřijímá odpovědi.

Chcete zlepšit tuto otázku? Přidejte podrobnosti a objasněte problém úpravou tohoto příspěvku.

Zavřeno před 4 lety.


Vylepšete tuto otázku

Soubor /etc/sudoers soubor uvádí, kteří uživatelé mohou co dělat pomocí sudo příkaz

Uživatel root vytváří a upravuje /etc/sudoers soubor.

Tento koncept je pro mě těžko pochopitelný.

Pokud všichni uživatelé s oprávněním sudo patří k sudoers skupinu, pak se všechny mohou stát rootem zadáním sudo su příkaz.

Kdo je tedy skutečný uživatel root a jak kontroluje pravomoci uživatelů ve skupině sudoers?

Vysvětlete mi to prosím.

Přijatá odpověď:

Shrnutí:„root“ je skutečný název účtu správce. „sudo“ je příkaz, který umožňuje běžným uživatelům provádět administrativní úkoly. „Sudo“ není uživatel.

Dlouhá odpověď:

„root“ (neboli „superuser“) je název účtu správce systému. Původ názvu je trochu archaický, ale to nevadí.

Root má uživatelské ID 0 a nominálně má neomezená oprávnění. Root může přistupovat k libovolnému souboru, spouštět jakýkoli program, provádět jakékoli systémové volání a upravovat jakékoli nastavení. (Ale viz níže¹).

Před vynálezem příkazu „sudo“, pokud jste chtěli provádět administrativní úkoly, museli jste se přihlásit jako root, buď získáním výzvy k přihlášení² nějakým způsobem, nebo pomocí su příkaz („su“ je zkratka pro náhradního uživatele.)³

To je trochu problém a také vám to neumožňuje poskytnout uživatelům částečné administrativní pravomoci. Byl tedy vynalezen příkaz „sudo“ (zkratka pro „substitute user do“).

Příkaz „sudo“ vám umožňuje spouštět příkazy s oprávněními superuživatele, pokud je vaše uživatelské jméno v souboru sudoers, což vám dává potřebnou autorizaci.

Takže např. sudo vi /etc/hosts vám umožní upravovat soubor hosts, jako byste běželi jako root. Nepotřebujete ani heslo uživatele root, pouze své vlastní přihlašovací heslo.

A samozřejmě sudo su vám umožní jednoduše se stát rootem. Výsledek je stejný, jako kdybyste se přihlásili jako root nebo spustili su příkaz, kromě toho, že nepotřebujete znát heslo uživatele root, ale musíte být v souboru sudoers.

Soubor sudoers určuje, kdo může použít příkaz sudo a co s ním může dělat.

Soubor sudoers je to, co vám dává více správců⁴. Ve skutečnosti jsou vaši správci root a všichni uvedení v souboru sudoers. Bez souboru sudoers je jediným správcem root.

Ve skutečnosti v organizacích, kde za vás spravuje váš počítač někdo jiný, je docela běžné, že neznáte root heslo vašeho vlastního počítače – pokud jste v souboru sudoers, na tom nezáleží.

V jedné společnosti, pro kterou jsem pracoval, s obrovskou serverovou farmou, jen velmi, velmi malý počet lidí znal hesla roota. Místo toho existovala databáze, kdo smí na kterých serverech pracovat. Automatizovaný proces by vás přidal do souborů sudoers na serverech, ke kterým jste měli oprávnění přistupovat, a odebral by vás, když vaše oprávnění vypršelo.

Související:Escape neznámých znaků z řetězce pro -exec?

¹ Ještě jedna věc:moderní verze Unixu nyní mohou omezit i to, co může dělat uživatel root.

Pod SELinux (Security Enhanced Linux) existuje efektivně seznam řízení přístupu, který určuje, který program co může dělat, a dokonce ani root nemůže tato omezení překonat.

V rámci systému Apple System Integrity Protection (SIP) (neboli „rootless“) jsou určité soubory a adresáře uzamčeny, takže k nim mají přístup pouze aplikace na příslušném seznamu povolených.

Tyto systémy existují, aby chránily systém před případem, kdy se uživateli se zlými úmysly podaří získat přístup root. (Nebo v některých případech, aby se uživatelům zabránilo v útěku z jejich vestavěných zařízení.) Ze zřejmých důvodů je extrémně obtížné obejít tato omezení, a to i s přístupem root.

² Výzva „login:“ je další archaický kus historie Unixu, který sahá až do doby, kdy jsme všichni používali terminály ascii na sériových linkách místo okenních systémů. Stále můžete získat výzvu „přihlášení:“ jednoduše zadáním login v libovolném okně terminálu nebo otevřením připojení ssh (nebo telnet nebo rsh) k vašemu počítači odjinud. Pokud byste chtěli, můžete se odtud přihlásit jako jiný uživatel. (A pokud váš počítač náhodou má sériové porty, stále jej můžete nakonfigurovat tak, aby umožňoval přihlášení k nim.)

³ Je také možné, aby jednotlivé programy měly přístup root. Tyto programy mohou dělat cokoli, co může dělat uživatel s přístupem root, i když je spouští běžný uživatel. Ty jsou obvykle omezeny na konkrétní úkoly. Například program crontab má oprávnění uživatele root, takže může upravovat tabulky cron. Je zřejmé, že „sudo“ má práva root, takže může dělat to, co dělá.

⁴ Uvedu ještě jeden bod, o kterém jsem se dříve zmínil. Používal jsem „administrátor“ a „root“ zaměnitelně, ale existují i ​​jiné druhy správců. Tyto účty se často nazývají „účty rolí“, což znamená, že tyto účty nepatří skutečným lidem, ale místo toho existují, aby plnily určitou konkrétní roli v systému. Pokud se podíváte na /etc/passwd soubor ve vašem systému, najdete desítky a desítky takových účtů.

Pokud by byl například ve vašem systému nainstalován mysql, byl by zde uživatel „mysql“ a všechny databázové soubory, konfigurační soubory a tak dále by byly ve vlastnictví tohoto uživatele. Pouze tento uživatel (a samozřejmě root) by měl potřebná oprávnění pro přístup k souborům a spuštění serveru mysql. V jistém smyslu by tento uživatel byl administrátorským účtem, ale pouze pro mysql.

Pokud byste potřebovali provádět úkoly správy databáze, buď byste se stali „mysql“ pomocí su mysql nebo použijte sudo kde by vám soubor sudoers poskytl mysql oprávnění pro tyto konkrétní příkazy.


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

  2. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

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

  1. Rozdíl mezi uživatelským a servisním účtem?

  2. Linux – rozdíl mezi uživatelským prostorem a prostorem jádra?

  3. Rozdíl mezi Eot a Eof?

  1. Rozdíl mezi [0-9], [[:digit:]] a D?

  2. Rozdíl mezi Snat a Masquerade?

  3. rozdíl mezi cgroups a jmennými prostory