komplexní průvodce Master sudoers souboru.
Co je v Souboru Sudoers?
soubor Sudoers je stejně jako jakýkoli jiný soubor v operačním systému Linux., Hraje však zásadní roli při správě toho, co může“ uživatel „nebo“ uživatelé ve skupině “ v systému dělat.
proč název Sudoers?
slovo Sudo je zkratka termínu „Super User Do“. Jak to jasně naznačuje — je to jako říkat jádru / OS „nemáte na výběr, prostě to udělejte!”. Uživatelé se svolením Sudo se tedy nazývají Uživatelé Sudo. Správa všech těchto uživatelů sudo se provádí prostřednictvím souboru nazvaného jako soubor Sudoers. Tento soubor také žije v adresáři / etc stejně jako jakýkoli jiný konfigurační soubor.,
proč soubor Sudoers?
běžný uživatel v systému Linux bude mít v systému mnoho omezení. Například-uživatel nebude moci spustit službu, změnit konfigurační soubor nebo spustit skript v systému ve výchozím nastavení. Z bezpečnostního hlediska to vypadá perfektně.,
ale vezměme si příklad – vy jako správce systému musíte spravovat všechny uživatele a jejich ovládací prvky. Máte webové stránky hostované na Apache V jednom ze svých serverů. Již máte Web-Admin ji spravovat. Uživatel by měl být vytvořen pro něj na webovém serveru. Tento uživatel by měl mít možnost dělat dvě věci, které běžný uživatel nemůže:
- spustit/restartovat službu Apache v případě, že se zastaví.
- upravte konfigurační soubor Apache.
ve výchozím nastavení máte dvě uživatelské možnosti:
- root uživatel, který má všechna oprávnění v systému včetně Apache.,
- běžný uživatel, který ve výchozím nastavení nebude moci spustit službu nebo upravovat konfigurační soubory v systému.
to je, když soubor sudoers přijde vhod pro vás. V souboru Sudoers můžeme přesně definovat :
- Web-Admin uživatel může pouze spustit Službu Apache &
- může upravovat pouze Apache Config.
hraní se souborem Sudoers
dost teorie, začneme dělat skutečné věci teď. Budu vysvětlovat každou sekci v souboru Sudoers s některými příklady., Ve výchozím souboru Sudoers vypadá jako toto,
v souboru vidíme především pět sekcí-první tři sekce v souboru souvisí s aliasem hostitele, uživatele a Cmnd., Budeme mluvit o ALIAS později, první pojďme mluvit o hlavní sekce :
#User Privilege Specification
root ALL = (ALL:ALL)
Poznámka: ‚#‘ označuje komentář v souboru, OS bude ignorovat tento řádek při provádění.,
Syntaxe : Uživatel <místo> OnHost = (Runas-User:Group) <místo> Příkazy
Příklad: root ALL = (ALL:ALL) VŠECHNY
Přečtěte si to jako Uživatel Root může Spustit libovolný Příkaz jako Jakýkoli Uživatele z Jakékoliv Skupiny na libovolného Hostitele.
→ první vše se používá k definování hostitelů. Můžeme definovat Hostname / Ip adresu místo všech. Vše znamená jakýkoli hostitel.
→ Second ALL: Third ALL is User: Group., Místo toho můžeme definovat uživatele nebo Uživatele se skupinou jako User: Group. Vše: vše znamená všechny uživatele a všechny skupiny.
→ Poslední vše je příkaz. Místo toho můžeme definovat příkaz nebo sadu příkazů. Vše znamená všechny příkazy.
to je velmi jednoduché, je to „kdo kde = (as_whom) co“.
Poznámka: většina lidí rozumí hostitelům jako vzdáleným hostitelům. Je to místní HOSTNAME / IP adresa., HOSTITELÉ pole bude jen zřídka, pokud chcete vědět více o HOSTITELÉ v Sudoers viz → https://www.sudo.ws/man/1.7.10/sudoers.man.html
v Podstatě můžeme umožnit uživateli, aby něco udělat pouze dvěma způsoby —
- Přímo dát mu svolení, aby se spustit příkaz změnou oprávnění k souboru.
- mu umožní provést příkaz jako jiný uživatel, který již má oprávnění k provedení tohoto příkazu.
v souboru Sudoers budeme implementovat ten druhý.,
použijeme jiný příklad, aby jasně pochopili pole v syntaxi:
Příklad : sysadmin ALL = (root) /usr/bin/cat /etc/shadow
Přečtěte si to jako Uživatel „administrátor“ může Spuštění příkazu „/usr/bin/cat /etc/shadow“ jako uživatel ROOT na všech HOSTITELŮ.
zde ve výše uvedeném příkladu, v příkazové části — přidal jsem něco víc než příkaz, to je ukázat flexibilitu souboru Sudoers. Část „/ usr / bin / cat “ je binární spustitelný soubor nebo příkaz používaný k zobrazení obsahu souboru., Část „/etc/shadow“ je důvěrný soubor, který ukládá hesla, tak to znamená, že uživatel „administrátor“ může spustit pouze „/usr/bin/kočka“ na „/etc/shadow“ soubor, pokud to uživatel pokusí zobrazit obsah jakýkoli jiný soubor, který nemá oprávnění ke čtení, nebude moci.,
Syntaxe Sudo příkaz: sudo <příkaz>
Příklad: sudo cat /etc/shadow
Nyní, pokud uživatel „administrátor“ používá sudo před příkaz, OS se nejprve zeptej se ho na Heslo Uživatele, ověřuje heslo a pak jde do Sudoers souboru a zkontroluje, zda je dovoleno vydat příkaz, jako každý uživatel. Pokud je povolen-úspěch, jinak nahlásí jednu z těchto dvou věcí —
→ uživatel není v souboru Sudoers. Tento incident bude hlášen.,
Note : You can see this reported incident in /var/log/auth.log
→Sorry, user <username> is not allowed to execute <command> as <User> on <hostname>
zde může uživatel webadmin spustit pouze „cat / etc / shadow“. Pokusil se však spustit příkaz “ cat “ na „/ etc / gshadow“, který není povolen.
Jako máme dostatek přilnavosti na polích v syntaxi souboru Sudoers, pojďme se přesunout dopředu a pochopit další sekce v souboru. Všechny ostatní sekce budou záviset na základní části, o které jsme již diskutovali.,
další sekci je SKUPINA Sekce, která je
#Umožnit členům skupiny sudo spustit libovolný příkaz,
%sudo ALL = (ALL:ALL)
Percentil symbol ‚%‘ se používá pro reprezentaci skupiny v Souboru Sudoers. Všechna pole a jejich funkce v této části jsou přesně stejná jako v předchozí části – uživatelská sekce. Stejná oprávnění Sudo můžeme přiřadit skupině namísto uživatele zadáním názvu skupiny – %<název skupiny>., Takže všichni členové skupiny zdědí stejná privilegia, která jsou skupině udělena.
ve výchozím nastavení existuje skupina SUDO definovaná v souboru Sudoers. Vidíme, že tato oprávnění jsou přesně stejná jako oprávnění uživatelů ROOT v souboru. Pokud je tedy uživatel členem této skupiny SUDO, může provést všechny příkazy, které může uživatel ROOT provést.
Definujme vlastní skupinu a pochopíme syntaxi jasněji. Vezměme si stejný starý příklad správce systému. Předpokládejme, že ne. zaměstnanců je nyní více, takže administrátoři systému jsou nyní 3., Každý z nich potřebuje stejná přesná oprávnění, která jsme dali prvnímu správci systému. Jedna věc, kterou můžeme udělat, abychom toho dosáhli, je mít tři položky pro všechny tři administrátory systému v souboru Sudoers. Pokud půjdeme s tímto přístupem, urážíme schopnosti souboru Sudoers.
nejlepší je seskupit všechny tři administrátory systému do skupiny nazvané „SystemAdminGroup“., Budeme definovat požadovaná oprávnění na tuto skupinu s —
%SystemAdminGroup ALL = (root) /usr/bin/cat /etc/shadow
Nyní jsou všechny tři administrátoři mohou spouštět Privilegované Příkaz. Udělali jsme to najednou pomocí definice skupiny.
soubor Sudoers je schopen zefektivnit celý tento proces pomocí různých funkcí. K dosažení tohoto cíle se používají první tři sekce — aliasy., Jak již slovo naznačuje, používáme ALIAS k něčemu, co můžeme použít v celém souboru, je to jako globální proměnná ve skriptu. Jak to celé zefektivní? Můžeme definovat sadu příkazů, hostitelů a uživatelů v jednom řádku, tento řádek přiřadíme jménu aliasu, tento alias bude použit kdykoli a kdekoli, aniž bychom znovu definovali všechny příkazy/hostitele/uživatele.
chci zahrnout ještě jeden ALIAS, který není ve výchozím nastavení uveden v souboru Sudoers, což je“Run_as ALIAS“., Teď máme čtyři JMÉNA,
- Uživatel ALIAS jako User_Alias
- Spustit-Jako ALIAS jako Runas_Alias
- Host ALIAS jako Host_Alias
- Příkaz ALIAS jako Cmnd_Alias
Poznámka : název Aliasu by měly být definovány v velká písmena a může obsahovat čísla, abecedy a podtržítko (_). Jméno aliasu musí začínat abecedou.,3e“>ALIAS> = <uživatelské jméno><uživatelské jméno>, <uživatelské jméno>…
Příklad: User_Alias ADMINISTRÁTOŘI = john,time,tome.
Použití: systémoví ADMINISTRÁTOŘI ALL = (root) /usr/bin/cat /etc/shadow
Pokud chci nějaký soubor sudo oprávnění definované pro uživatele — john, tim a tom, že nemusím definovat tři krát, místo toho můžete definovat Alias a použít tento Alias Jméno, zatímco delegování sudo přístup k nim.,
Run As ALIAS Syntax —
Runas_Alias <ALIAS Name> =<username>,<username>,<username>…
Example: Runas_Alias MGRS = root,sradmin
Usage: systemadmin ALL = (MGRS) /usr/bin/cat /etc/shadow
If i want to define the set of users a user can run a command as, i can use Runas_Alias., Nenechte se zmást, stačí si vzpomenout na hlavní mantru-kdo kde = (as_whom) co. Používáme zde alias, abychom zahrnuli ne. uživatelů v poli“ as_whom“.
Host ALIAS Syntaxe —
Použití: systemadmin HOSTÍ = (root) /usr/bin/cat /etc/shadow
Jestli bych třeba definovat soubor hostname, ip adresy nebo rozsahu ip adres, na který se uživatel může vydat Privilegované/Sudo příkazy, můžu dosáhnout pomocí Hostitele Alias. Opět platí, že tato část patří do pole „kde“ v hlavní frázi.