Vyhledávání na webu

Rozdíl mezi su a sudo a jak nakonfigurovat sudo v Linuxu


Linuxový systém je mnohem zabezpečenější než kterýkoli z jeho protějšků. Jedním ze způsobů, jak implementovat zabezpečení v Linuxu, je politika správy uživatelů a oprávnění uživatele a normální uživatelé nejsou oprávněni provádět žádné systémové operace.

Pokud běžný uživatel potřebuje provést nějaké systémové změny, musí použít buď příkaz „su“ nebo „sudo“.

POZNÁMKA – Tento článek je použitelný spíše pro distribuce založené na Ubuntu, ale také platí pro většinu populárního Linuxu distribuce.

„su“ vs „sudo“

su“ vás nutí sdílet heslo uživatele root s ostatními uživateli, zatímco „sudo“ umožňuje spuštění systémové příkazy bez hesla root. „sudo“ vám umožňuje používat vaše vlastní heslo ke spouštění systémových příkazů, tj. delegovat odpovědnost za systém bez hesla root.

Co je to „sudo“?

'sudo' je kořenový binární setuid, který spouští příkazy root jménem oprávněných uživatelů a uživatelé potřebují ke spuštění zadat své vlastní heslo. systémový příkaz následovaný 'sudo'.

Kdo může provádět „sudo“?

Můžeme spustit „/usr/sbin/visudo“ a přidat/odebrat seznam uživatelů, kteří mohou spustit „sudo“.

sudo /usr/sbin/visudo

Snímek obrazovky souboru „/usr/sbin/visudo“ vypadá asi takto:

Seznam sudo ve výchozím nastavení vypadá jako řetězec níže:

root ALL=(ALL) ALL

Poznámka: Abyste mohli upravovat /usr/sbin/visudo, musíte být root soubor.

Udělení přístupu sudo

V mnoha situacích Systémový administrátor, speciálně nový v tomto poli, najde řetězec „root ALL=(ALL) ALL “ jako šablonu a udělí neomezený přístup ostatním, kteří mohou být potenciálně velmi škodlivé.

Úprava souboru „/usr/sbin/visudo“ na něco podobného níže uvedenému vzoru může být opravdu velmi nebezpečná, pokud nevěříte úplně všem uvedeným uživatelům.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Parametry sudo

Správně nakonfigurované sudo‘ je velmi flexibilní a počet příkazů, které je třeba spustit, lze přesně nakonfigurovat.

Syntaxe nakonfigurovaného řádku „sudo“ je:

User_name Machine_name=(Effective_user) command

Výše uvedená syntaxe může být rozdělena do čtyř částí:

  1. User_name: Toto je jméno uživatele „sudo“.
  2. Machine_name: Toto je název hostitele, ve kterém je platný příkaz „sudo“. Užitečné, když máte hodně hostitelských strojů.
  3. (Effective_user): Efektivní uživatel, který může spouštět příkazy. Tento sloupec umožňuje uživatelům spouštět systémové příkazy.
  4. Příkaz: příkaz nebo sada příkazů, které může uživatel spustit.

Doporučená četba: 10 užitečných konfigurací sudoerů pro nastavení „sudo“ v Linuxu

Některé ze situací a jejich odpovídající řádek „sudo“:

Q1. Máte uživatelskou značku, což je správce databáze. Měli byste mu poskytnout veškerý přístup pouze na databázovém serveru (beta.database_server.com), nikoli na žádném hostiteli.

Pro výše uvedenou situaci lze řádek „sudo“ zapsat jako:

mark beta.database_server.com=(ALL) ALL

Q2. Máte uživatele 'tom', který má provádět systémové příkazy jako uživatel jiný než root na stejném databázovém serveru, výše Vysvětleno.

Pro výše uvedenou situaci lze řádek „sudo“ zapsat jako:

mark beta.database_server.com=(tom) ALL

Q3. Máte uživatele sudo 'cat', který má spustit příkaz ' pouze pes'.

Pro implementaci výše uvedené situace můžeme napsat „sudo“ jako:

mark beta.database_server.com=(cat) dog

O4. Co když uživatel potřebuje udělit několik příkazů?

Pokud je počet příkazů, které má uživatel spustit, nižší než10, můžeme všechny příkazy umístit vedle sebe, s mezerou mezi nimi, jak je znázorněno níže:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Pokud se tento seznam příkazů liší v rozsahu, kdy doslova není možné zadat každý příkaz ručně, musíme použít aliasy. Přezdívky! Ano, nástroj pro Linux, kde lze dlouhý příkaz nebo seznam příkazů označit jako malé a snadné klíčové slovo.

Několik příkladů alias, které lze použít místo záznamu v konfiguračním souboru „sudo“.

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

Je možné zadat Systémové skupiny namísto uživatelů, kteří patří do této skupiny, pouze s příponou „%“, jak je uvedeno níže:

%apacheadmin WEBSERVERS=(www) APACHE

Otázka 5. Co takhle provést příkaz „sudo“ bez zadání hesla?

Příkaz „sudo“ můžeme provést bez zadání hesla pomocí příznaku „NOPASSWD“.

adam ALL=(ALL) NOPASSWD: PROCS

Zde může uživatel „adam“ provádět všechny příkazy alias pod „PROCS “, aniž by zadával heslo.

Doporučená četba: Nechte sudo urazit vás, když zadáte nesprávné heslo

sudo“ vám poskytuje robustní a bezpečné prostředí se spoustou flexibility ve srovnání s „su“. Konfigurace „sudo“ je navíc snadná. Některé distribuce Linuxu mají ve výchozím nastavení povoleno „sudo“, zatímco většina dnešních distribucí vyžaduje, abyste jej povolili jako bezpečnostní opatření.

Chcete-li přidat uživatele (bob) do sudo, spusťte níže uvedený příkaz jako root.

adduser bob sudo

To je prozatím vše. Jsem tu zase s dalším zajímavým článkem. Do té doby zůstaňte naladěni a připojeni k Tecmint. Nezapomeňte nám poskytnout svou cennou zpětnou vazbu v sekci komentářů.