|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Linux v příkazech - sudoV dnešním dílu se podíváme na poměrně mocný program, který vám dovolí předávat všechna, nebo jenom některá superuživatelská práva normálním uživatelům.
You had mail, but the super-user read it, and deleted it! Název programu vznikl složením slov "superuser do", a to poměrně jasně vystihuje jeho funkci. S pomocí suda můžete dovolit normálnímu uživateli spouštět všechny, nebo jen některé příkazy s právy superuživatele. Takto lze např. pohodlně vyřešit situaci, kdy je vhodné (ba přímo nutné), aby někteří uživatelé používali programy určené ke správě, ovládání systému a podobně. InstalaceProgram si můžete stáhnout z domovské stránky http://www.sudo.ws/sudo/ (http://www.courtesan.com/sudo/sudo.html) a následně zkompilovat. S největší pravděpodobností bude ovšem zahrnut i ve vaší distribuci, takže vám doporučuji nejprve sáhnout po distribučním balíčku s binárkou či zdrojáky.
Konfigurace
Veškeré nastavení se provádí v konfiguračním souboru
Nejzákladnější volby
A nyní se můžeme vrhnout na vlastní konfiguraci. Po spuštění programu
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
Řekněme tedy, že chceme přidělit uživateli
# User privilege specification
root ALL=(ALL) ALL
spravce ALL=(ALL) ALL
%admini ALL=(ALL) NOPASSWD: ALL
Tak. Nyní můžeme jako uživatel spravce@stroj:~$ sudo /usr/bin/whoami Password: root
Co se vlastně stalo? Uživatel
V předchozím příkladu zbývá nevysvětlený poslední řádek – ten pomocí
Tím jsme si předvedli úplně nejzákladnější funkci programu OmezováníAčkoli nadpis této kapitolky zavání BOFH, představím vám zde velice užitečné možnosti, jak předat pouze určitá práva a některé další "omezující" volby. Nejdříve se ještě můžeme vrátit k zadávání hesla. Vytvořme si v konfiguračním souboru "novou sekci" s následujícím obsahem:
# Defaults specification
Defaults:spravce timestamp_timeout=0, passwd_tries=1
Tímto nastavíme, že uživatel
Volba
Zajímavé je také to, jak Jak už jsem poznamenal v úvodu, předání všech superuživatelských práv není obvykle ta správná cesta. Pojďme tedy skupinu programů omezit:
# User privilege specification
root ALL=(ALL) ALL
spravce ALL= /sbin/shutdown
%admini stroj= /usr/local/sbin/admini/
Tímto nastavením jsme docílili toho, že uživatel Ovšem sudo nemusí dávat uživateli "pouze" práva superuživatele, programy lze spouštět pod libovolným uživatelem, např.:
# User privilege specification
root ALL=(ALL) ALL
jirka ALL=(pepa,lenka,franta) /bin/kill,/usr/bin/killall
Tímto příkazem může uživatel
jirka@stroj:~$ sudo -u pepa killall program
Protože v minulém příkazu v posledním řádku není uvedeno
Náš předchozí příklad můžeme ještě vylepšit o volbu, která zajistí, že
Defaults:jirka runas_default=pepa Aliasy
Protože se občas některé volby opakují a protože jsou delší konfiguráky trošku
nepřehledné a náročnější na úpravy, nabízí # Host alias specification Host_Alias KANCELAR = 192.168.0.0/24 # User alias specification User_Alias SPRAVCI = spravce,jarda User_Alias UZIVATELE = pepa,jirka,lenka,franta # Runas alias specification Runas_Alias OP = operator # Cmnd alias specification Cmnd_Alias WWW = /bin/su www Cmnd_Alias KILL = /bin/kill,/usr/bin/killall Cmnd_Alias HALT = /sbin/halt Cmnd_Alias SHELLS = /bin/sh, /bin/bash, /bin/ksh, \ /bin/tcsh, /usr/local/bin/rsh Tímto zápisem si definujeme aliasy, které můžeme dále použít. Např.:
# User privilege specification
root ALL=(ALL) ALL
SPRAVCI KANCELAR=(ALL) ALL
pepa KANCELAR=(OP) KILL
UZIVATELE ALL=(ALL) HALT
spravce ALL=(ALL) /bin/, WWW, !SHELLS
Všimněte si především posledního řádku. Znak
Podobně můžeme např. povolit uživateli # Cmnd alias specification Cmnd_Alias SIT=/bin/ip *, !/bin/ip *eth0* Cmnd_Alias SNIFFER=/usr/sbin/tcpdump * # User privilege specification root ALL=(ALL) ALL spravce ALL=(ALL) SNIFFER vojta ALL=(ALL) SIT Kompletní ukázkaKompletní a fungující ukázku konfiguračního souboru lze nalézt na oficiálních stránkách, konkrétně na adrese http://www.courtesan.com/sudo/sample.sudoers. Bezpečnost
Kromě toho, že
Z bezpečnostního hlediska je také velice zajímavé použít Logování
Implicitní nastavení logování je u různých distribucí různé; soubor s logy si
můžeme nastavit v úvodu konfiguračního souboru programu Defaults logfile=/var/log/sudo.log Příklad souboru s logy: Oct 30 19:56:28 : spravce : TTY=pts/9 ; PWD=/home/spravce ; USER=root ; COMMAND=/usr/bin/whoami Oct 30 20:00:28 : spravce : TTY=pts/5 ; PWD=/home/spravce ; USER=pepa ; COMMAND=/usr/bin/killall doom3 Oct 30 20:01:04 : petra : user NOT in sudoers ; TTY=tty/1 ; PWD=/home/petra ; USER=root ; COMMAND=/bin/bash Oct 30 20:11:39 : franta : 3 incorrect password attempts ; TTY=pts/10 ; PWD=/etc/ ; USER=root ; COMMAND=/bin/cat /etc/shadow
Vysvětlovat význam jednotlivých položek asi nemá cenu, protože jsou docela
zřejmé. Pozor si ale dávejte především na hodnotu položky
Pokud se Za konzultace bych chtěl poděkovat Honzovi Houšťkovi.
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |