Téma 9: Administrace systému CentOS Představení a používání aplikací pro administraci CentOS
Téma 9: Administrace systému CentOS Teoretický úvod Linux je velmi dobře spravovatelný systém, ovšem při jeho administraci je třeba si dávat obzvlášť velký pozor, občas se totiž na nic neptá a zrovna koná! K administraci CentOS jsou používány nástroje, z nichž některé mají grafické nástavby a některé nikoliv, pochopitelně i programy s grafickou nástavbou je možné ovládat pouze z příkazové řádky. Linux disponuje jedním velmi mocným uživatelem - root. Pomocí tohoto superusera můžete v systému opravdu cokoliv, o připojování/odpojování diskových oddílů přes administrace vzdáleného přístupu do Xorg po instalování ovladačů. Zmiňované grafické nástavby jsou obdobou nástrojů v ovládacích panelech Windows, pro některá nastavení ale grafické nástroje nenaleznete. V tomto cvičení si vyzkoušíte jako pracovat s uživatelem root, jak používat su, dále vyzkoušíte možnosti vzdáleného přístupu. Prozkoumáte také administrační nástroje a budete se věnovat i zprávám, které produkuje jádro systému.
2
Téma 9: Administrace systému CentOS
Zadání cvičení Úlohy jsou rozděleny na tři části: 1. 2. 3. 4.
Používání root práv - konzolové prostředí. Používání root práv v prostředí X serveru; používání grafických nástrojů. Administrace systému - první část. Administrace systému - druhá část
Pro vyšší přehlednost následují odpovědi přímo za zadáním.
3
Téma 9: Administrace systému CentOS
Řešení: I. Používání root práv - konzolové prostředí 1. Zjistěte zda-li je uživatel root vůbec vytvořen (jsem si jistý, že to víte) Pro zjištění zda-li existuje uživatel root, je nejlepší podívat se přímo do databáze, kde jsou uloženy informace o uživatelích tedy: [FimUHK@localhost: ∼] $ cat /etc/passwd pro zkrácený výpis použijte: [FimUHK@localhost: ∼] $ cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash Pravděpodobně dostanete výše uvedený výstup. Uživatel root skutečně existuje.
2. Jaká je domovská složka uživatele root? Je vidět z předchozího výpisu. Tedy /root. Tuto informaci můžete zjistit i pomocí příkazu pwd.
3. Přihlašte se na uživatele root. [FimUHK@localhost: ∼] $ su Password: [root@localhost: ∼] # Všimněte si, že změnilo přihlašovací jméno v příkazovém řádku a také znak indikující přihlášeného super uživatele, a sice # na místo $. Používejte práva uživatele root skutečně velmi obezřetně a nezapomínejte na tuto skutečnost: root pracuje s jiným oprávnění, než ostatní uživatelé tzn., že mění i vlastnictví adresářů a souborů!
4. Vraťte se zpět do úrovně uživatele FimUHK. a) první možnost: [root@localhost: ∼] # exit [FimUHK@localhost: ∼] $ b) druhá možnost: [root@localhost: ∼] # su - FimUHK Password: [FimUHK@localhost: ∼] $
4
Téma 9: Administrace systému CentOS Obecně není dobré, přihlašovat se do uživatele root a provádět pouze jednu akci. Lepší je nastavit práva této využívané aplikaci určitá práva (tzn. změnit tak aby mohl i obyčejný uživatel používat tuto aplikaci), hrozí totiž, že opustíte shell session otevřenou i s root právy! II. Používání root práv v prostředí X serveru; používání grafických nástrojů Předpoklady: - Prvním předpokladem, je zobrazení na správný display, ve většině případů se bude zobrazovat administrační aplikace správně, tedy na Vašem display, někdy se ovšem může stát něco zcela jiného. - Právě pro druhé případy je nutné nastavit autentikaci X serveru pro uživatele root. Jak nastavit X autentikaci uživatele root: 1. Spustíme terminál (jsme přihlášeni jako běžný uživatel): [FimUHK@localhost: ∼] $ xauth extract cookie.dat $DISPLAY o proměnné DISPLAY
//exportujeme dočasně informaci
2. přihlásíme se jako root: [FimUHK@localhost: ∼] $ su Password: [root@localhost: ∼] #
3. Přidáme informaci o DISPLAY do souboru s oprávněními uživatele root, po-té smažeme naši dočasnou informaci: [root@localhost: ∼] # xauth merge /home/FimUHK/cookie.dat [root@localhost: ∼] # rm /home/FimUHK/cookie.dat Tímto způsobem jsme zajistili první předpoklad, tedy zajištění zobrazení aplikací přesně tam, kde potřebujeme i pro uživatele root.
4. V tématu č. 6 jsme si představovali základní předinstalované nástroje CentOS, přitom jsme ale vynechali část System. Prozkoumejte tuto složku.
5
Téma 9: Administrace systému CentOS
Složka obsahuje dvě podsložky: Preferences a Administration. Obě obsahují administrátorské nástroje, pomocí, kterých je možné částečně nastavit (ovládat, chcete-li) systém. Většina z těchto aplikací bude vyžadovat heslo uživatele root. Např. ze složky Administration => Authetication
Všechny “zásadnější” aplikace (dále např.: Firewall) budou vyžadovat heslo uživatele root. Nebudete muset ovšem toto heslo zadávat pokaždé, když spustíte tuto aplikaci. Systém si bude Vaše přihlášení pamatovat, standardně 5 minut od přihlášení. (Pozn. Toto nastavení se může lišit u různých verzí.)
5. Pokuste se změnit systémový čas a časové pásmo. Čas změníte pomocí aplikace ve složce System => Administration => Date & Time 6
Téma 9: Administrace systému CentOS
6. Pokuste se zakázat odpověď na pingv4. Ping zakážete v aplikaci Firewall. System =>Administration => Firewall
K odepření odezvy ping je potřeba spustit konfigurační aplikaci Firewall, viz obrázek. V levém menu zvolte ICMP Filter a poté zaškrtněte možnost Echo Request (ping). A potvrďte stiskem tlačítka Apply. Ping otestujte ze svého PC. IP adresu virtuálního PC zjistíte pomocí příkazu ifconfig. Váš hostitelský PC je s poskytuje virtualizovanému stroji konektivitu pomocí NAT.
7
Téma 9: Administrace systému CentOS 7. Pokuste se nastavit klávesou zkratku pro spuštění Terminálu. Klávesová zkratka bude CTRL+ALT+T. Klávesové zkratky se dají spravovat pomocí aplikace Keyboard Shortcuts v podsložce System => Preference.
V seznamu nalezněte Desktop, a na poslední pozici je položka Run a terminal. Klikněte do sloupce Shortcut a vložte požadovanou zkratku pomocí stisknutí těchto kláves, tedy CTRL+ALT+T (postupně, předchozí klávesu podržte). Jestliže se Vám pokus nezdařil, klikněte znovu na sloupec Shortcut. Zkuste si také přidat libovolnou zkratku, např. pro spuštění aplikace Firefox. (Nejprve vytvoříte příkaz, pak přidáte zkratku).
8
Téma 9: Administrace systému CentOS 8. Přidejte aplikaci firefox do seznamu aplikací spouštěných po spuštění. Nástroj pro konfiguraci aplikací spuštěných po spuštění systémů je k nalezení v System => Preferences => Starup Applications.
Libovolnou aplikaci přidáme pomocí tlačítka Add. Vyplníme název aplikace, její spouštěcí příkaz a nepovinně komentář. Pokud jsi nejste jistí spouštěcím příkazem můžete spustit terminál a pomocí příkazu which aplikaci zjistit. V našem případě: [FimUHK@localhost: ∼] $ which firefox /usr/bin/firefox Pro kontrolu restartujte PC a ověřte funkčnost.
9. Všechny nástroje, které jsou ve složce Administration a Preferences (nejsou uvedeny všechny) můžete spouštět z Terminálů pomocí balíku system-config-*. Všechny budou vyžadovat root heslo pro přístup do aplikace. Pokuste se o nastavení uživatelů systému. A vytvořte nového uživatele team s heslem maet, zbytek parametrů nechte ve standardním formátu. Nastavení uživatelů provedete pomocí příkazu: [FimUHK@localhost: ∼] $ system-config-users
9
Téma 9: Administrace systému CentOS
III. Administrace systému - první část Linux obecně jako operační sytém disponuje velmi mocnou vlastností. Ukládá informaci absolutně o všem co v rámci kernelu (jádra) stanu. Tyto informace ukládá do obyčejných textových souborů, které jsou velmi jednoduše zpracovatelné a dobře čitelné. 1. a) Zjistěte kam Linux ukládá základní informace o běhu (obecně o systému). Linux ukládá veškeré informace o stavu systému, včetně chyb, hlášení apod. do souboru /var/log/messages. b) Tento soubor má ovšem omezená práva, stejně jako složka /var pro obyčejné uživatele, jaká a jakého má vlastníka? [FimUHK@localhost: ∼] $ ls -l / | grep var drwxr-xr-x 17 root root 4096 Aug 14:48 var Práva souboru jsou uvedeny v první části výstupu z písmenem d. Vlastník složky je root. To tedy znamená, že zprávy ze souboru /var/log/messages může číst jen root. c) Přečtěte zprávy z tohoto souboru. [FimUHK@localhost: ∼] $ su Password: 10
Téma 9: Administrace systému CentOS [root@localhost: ∼] # less /var/log/messages Někdy se může hodit příkaz: [root@localhost: ∼] # tail /var/log/messages
//pro zpětné čtení - od konce.
Pochopitelně v kombinaci s grep je hledání velmi rychlé. 2. Linux jakožto UNIX-like system nemá pouze jednoho super uživatele, který je určený k administraci systému. Linux obsahuje již předinstalované tzv. administrativní loginy. Ty jsou značeny jakým UID? Jsou značeny UID menším než 100. 3. Pokuste se odhadnout jaké administrativní účty by mohl CentOS obsahovat. Jako kontrolu můžete použít příkaz: [FimUHK@localhost: ∼] $ cat /etc/passwd Všechny účty, s UID menším než 100 jsou administrativní účty. Vyjmenujme např.: - lp - umožňuje řízení tiskových nástrojů a tisku samotného. Domovská adresa je /var/spool/lpd - bin - tento uživatel vlastní několik spustitelných programů. V případě CentOS ovšem většina připadá právě na uživatele root. Domovská stránka je /bin. - Další pak: tcpdump, apache, ntp, apod.
11
Téma 9: Administrace systému CentOS Bonus: Skript pro výpis uživatelů s UID menším než 100. Jak na skript v Perlu? #!/usr/bin/perl $input = "/etc/passwd"; $output = "/home/FimUHK/Downloads/vystup.txt"; open VSTUP,"$input"; open VYSTUP, "+>","vystup.txt" or die $!;; while ($lines=
) { #print $lines; chomp($lines); ($prvni,$druhy,$treti) = split(/:/,$lines); if($treti<100){ print VYSTUP "$lines\n"; print "$lines\n" } } close(VSTUP); close(VYSTUP);
a) Kód uložte do souboru skript.pl b) Nastavte spustitelný příznak souboru (pomocí chmod). c) Spusťte skript pomocí:[FimUHK@localhost: ∼] $ ./skript.pl Nezapomeňte, že znak ∼(tilda) je symbol pro domovskou složku, skript spouštějte z místa, kde jste ho uložili. Skript vypíše všechny uživatele s UID menším než 100 do nového souboru vystup.txt, který se uloží do: /home/FimUHK/Downloads/. Skript je napsán v jazyce Perl. Bonus: Skript pro výpis uživatelů s UID menším než 100. Jak na skript v awk? BEGIN { FS=":" print "Seznam uzivatelu s UID mensim nez 100" } { if ($3 < 100) print($0) }
a) Kód uložte do souboru skript.awk b) Nastavte spustitelný příznak souboru (pomocí chmod). c) Spusťte skript pomocí:[FimUHK@localhost: ∼] $ awk -f skript.awk /etc/passwd Nezapomeňte, že znak ∼(tilda) je symbol pro domovskou složku, skript spouštějte z místa, kde jste ho uložili. Skript vypíše všechny uživatele s UID menším než 100 pouze jako stdout. Samozřejmě je možné výstup přesměrovat stejně jako v prvním případě. Skript je napsán v jazyce awk.
12
Téma 9: Administrace systému CentOS 4. SUDO. Je speciální typ příkazu, který vykoná příkaz, který zpravidla vyžaduje heslo uživatele root. V prostředí CentOS je ovšem potřeba sudo řádně konfigurovat, tedy přiřadit oprávnění jen některým uživatelům. Z pravidla je záznam o tomto nastavení uložen v souboru /etct/sudoers. Pokuste se tento soubor přečíst pomocí tohoto příkazu: [FimUHK@localhost: ∼] $ sudo cat /etc/sudoers [sudo] password for FimUHK: FimUHK is not in the sudoers. This incident will not be reported. Systém nám tedy neumožní nic podobného provést, protože nejsme členy skupiny sudoers. Bude tedy třeba pod uživatelem root editovat tento soubor. Můžete buď využít tento příkaz: [root@localhost: ∼] # /usr/sbin/visudo nebo [root@localhost: ∼] # nano /etc/sudoers Doporučuji použít druhý editor (nano), je poněkud přívětivější než vi (příznivce vi a vim přesto obdivuji). První příkaz sice neukazuje přímo na soubor, ale příkaz je speciálně určen pro editaci tohoto souboru. Nalezne řádek (použijte zkratku CRTL+W): %wheel
ALL=(ALL)
ALL
tento řádek odkomentujte (odstraňte znak #). Po té upravte následující řádek (umístěný hned prvním upravovaným): %wheel
ALL=(ALL)
NOPASSWD: ALL
tento řádek také odkomentujte. Nyní je stále nemáte oprávnění sudo. To je povoleno pouze pro skupinu wheel. 5. Přidejte do skupiny wheel uživatele FimUHK. Pozor zachovejte předchozí nastavení skupin, tzn. uživatel FimUHK bude členem své původní skupiny, tedy FimUHK. [root@localhost: ∼] # usermod -a -G wheel,FimUHK FimUHK Nyní se odhlašte z uživatele root a zkuste upravit soubor /etc/sudoers. [FimUHK@localhost: ∼] $ sudo nano /etc/sudoers Systém už Vám bránit nebude. Ovšem pozor nemáte zcela totožná práva uživatele root. Např. odpojování nebo připojování souborových systémů stále zůstává pouze v pravomoci uživatele root. Všimněte si také, že systém Vás nepřihlašuje pomocí příkazu sudo na uživatele root nebo jiného. Pouze provede daný příkaz, proto musíte pokaždé nejprve psát příkaz sudo. Heslo opět zůstává 13
Téma 9: Administrace systému CentOS standardně 5 minut zapamatované v systému, tato hodnota se ovšem dá změnit. Pro toho kdo by rád změnil tento čas napovím, že má hledat hodnotu parametru passwd_timeout v souboru /etc/sudoers, tedy v souboru nám dobře známém. Používejte sudo velmi obezřetně! IV. Administrace systému - druhá část Linux lze spravovat u naprosté většiny základních programů, nástrojů apod. pomocí konfiguračních souborů. Tyto soubory mohou obsahovat informace o síti, skupinách apod. Soubory jsou zpravidla obyčejné plain-text soubory. Můžete je tak snadno upravovat, hledat v nich a konečně do nich zapisovat. Pravděpodobně jediná nevýhoda vzpočívá v tom, že nemáte nad konfigurací žádnou kontrolu ve smyslu kontroly syntaxe apod. 1. Jaké konfigurační soubory znáte a kde byste je hledali (vzpomeňte si na adresářovou strukturu)? Konfigurační soubory: resolv.conf; passwd; bashrc; crontab; exports; fstab; host.conf; atd. atd. Konfiguračních souborů je opravdu hodně, většina z nich se nachází ve složce /etc. Můžou se také nacházet ve složce /home/KONKRETNI_UZIVATEL. Vybrané konfigurační soubory: - crontab => nastavuje prostředí pro a časování plánovaných úloh v rámci nástroje cron - fstab => obsahuje informace o připojených zařízeních, oprávnění, připojovací body apod. upravovat VELMI, VELMI opatrně. - inittab => definuje, které programy budou spuštěny při startu systému - passwd => obsahuje informace u účtech uživatelů a jejich heslech (neukáže heslo, jen zda-li je heslo použito) - modprobe.conf => obsahuje aliasy pro načítané moduly jádra - redhat-release => obsahuje informaci o aktuální instalaci (verze instalace) - resolv.conf => definice DNS serverů - syslog.conf => definuje, jaké zprávy se budou ukládat z démona syslogd; tyto zprávy jsou zpravidla ukládány ve složce /var/log
14