Nzev koly S spoj a informatiky Tbor Autor
Název školy: SŠ spojů a informatiky Tábor Autor: Petr Vlach Název: VY_32_INOVACE_OS_16 Číslo projektu: CZ. 1. 07/1. 5. 00/34. 1021 Název projektu: Moderní škola – inovace výuky na SŠSI Tábor
LINUX Server Shelly, spouštěcí skripty, základní služby systému
Příkazové interprety (Shells) Interpret je první program spuštěný po přihlášení uživatele k systému (je obdoba souboru command. com nebo Správce programů ve Windows). Tento program interpretuje příkazy uživatele na příkazovém řádku a předává je ke zpracování operačnímu systému. Shell znamená mušle, skořápka a linuxový shell je jakýmsi obalem, který zprostředkuje styk jádra op. systému s okolím. V Linuxu se používají TEXTOVÉ příkazové interprety. Linux dává možnost výběru z několika příkazových interpretů ( jsou uvedeny v souboru /etc/shells). Pro superuživatele se používá příkazový interpret bash. Spouštěcí skripty Spouštěcí skript je textový soubor , který je zpracováván příkazovým interpretem (shellem). Obsahuje příkazy pro interpret(Je to obdoba dávkových souborů v DOSu). Spustíte-li shell s parametrem „jméno skriptu“, shell přesměruje na svůj standardní vstup příkazy ze skriptu a postupn ě je vykonává. Příklad: vytvořit soubor : gedit skript 1 Obsah skriptu 1: #!/bin/sh (označuje, který interpret se má použít ke spuštění skriptu) echo -n „aktuální adresář je „ (parametr -n , nepřechází se na nový řádek) pwd (příkaz pro zobrazení pracovního adresáře) Spustit skript: sh skript 1
Skripty není třeba spouštět jako parametry shellu. Jestliže změníme příkazem chmod +x přístupová práva souboru skript 1 (tj. povolíme jeho spuštění jako příkaz), stačí jako příkaz zadat samotné jméno skriptu. Zkontrolovat přístupová práva příkazem ls –l Změnit přístupová práva: chmod +x skript 1 spustit skript: . /skript 1 Pozn. : Programy v aktuálním adresáři spouštíme tak , že se na aktuální adresář odkážeme (. /). V linuxových systémech totiž aktuální (pracovní) adresář není součástí cesty, která se prohledává při zadání příkazu. Je to bezpečnostní opatření pro případ, že někdo vytvoří škodlivý skript se stejným jménem , jako má některý z příkazů Linuxu.
Systémové proměnné Každá spuštěná aplikace má své vlastní „prostředí“, které je charakterizováno různým nastavením systémových proměnných standardních, ale i uživatelsky definovaných. Systémové proměnné umožňují příkazovým interpretům např. Schopnost pamatovat si data zadaná uživatelem, výstupy jiných programů, …. Výpis seznamu systémových proměnných: Výpis jedné proměnné: printenv proměnná Nastavení systémové proměnné: proměnná=hodnota export proměnná , kterým se nastavení potvrdí. . Je-li proměnná nastavena musí se ještě použít příkaz Odstranění systémové proměnné: unset proměnná Roury (pipes) realizují zaslání výstupu z jednoho programu na vstup druhého programu. Rouru představuje vertikální čárka | mezi dvěma příkazy. příklad: cat soubor. txt | more Na rozdíl od Windows Linux zpracovává všechny příkazy souběžně a odpadá tedy potřeba uchovávat výsledky dílčích operací v dočasných souborech.
Přesměrování (redirection) realizuje zaslání výstupu z programu do souboru. Zápis do nového samostatného souboru: za příkazem je znak > a jméno souboru, do kterého se má zapisovat. ls > /tmp/pok Připojení dat na konec již existujícího souboru : za příkazem je znak >> a jméno souboru, do kterého se má zapisovat. Echo „výpis“ >> /tmp/seznam Zaslání dat ze souboru na vstup programu provedeme pomocí znaku < , za který napíšeme jméno souboru. grep ‘root’ < /etc/passwd ( zaslání dat ze souboru /etc/passwd do programu grep ) Sloučené příkazy V příkazovém interpretru bash , můžeme napsat několik příkazů na jeden řádek , oddělujeme je středníkem. ls –l ; cat /etc/passwd
Základní služby systému (Daemoni) Proces : běžící program. Procesy řídí jádro (kernel) , které procesům přiděluje systémové prostředky. Démon: proces běžící na pozadí, které uživatel nemá pod kontrolou (vymkne se z kontroly terminálu, ze kterého byl spuštěn). Jejich ovládací skripty (umožňují je spustit, zastavit či restartovat) se zpravidla nacházejí v adresáři /etc/init. d. Spuštění démona: Příklad: spustit síťové služby (jako root); networking je skript v adresáři /etc/init. d/networking stop (start, restart) nebo service networking stop (start, restart) Nezávisle na distribuci obsahuje každá instalace systému Linux pět základních služeb: init, inetd, xinetd, syslogd, cron Proces init je nadřazen všem dalším procesům. Vždy se spouští jako první a jeho PID =1. Má dvě základní úlohy: 1. slouží jako nejvýše postavený rodičovský proces 2. spouští příslušné programy při přechodu systému do daného stavu (popsáno v souboru /etc/inittab) Pozn. : systém Linux se vždy nachází v nějakém stavu. Stav systému se označuje číslicí od nuly do 6 nebo znaky s , S. 0 vypnutí počítače 1 jednouživatelský mod 2 multiuživatelský mod se sdílením vzdálených souborů …. . .
Procesy inetd a xinetd Tyto procesy jsou démoni. Proces inetd slouží jako „superserver“ [1, s. 182 ] pro ostatní síťově zaměřené procesy (např. ftp, telnet). Filisofie tohoto řešení: namísto současného spouštění celé řady procesů, které by většinu času strávily čekáním, zapíší se tyto procesy do konfiguračního souboru /etc/inetd. conf. Na příchozí požadavky procesy místo nich čeká pouze inetd. který je jediným procesem, který musí zůstat v paměti. Některé méně náročné služby je nejlépe provozovat prostřednictvím inetd, služby náročnější na objem zpracovávaných dat je lepší provozovat samostatně, tedy jako procesy, které jsou neustále spuštěny (není pro ně záznam v /etc/inetd. conf; pokud neexistuje soubor inetd. conf jsou všechny služby samostatné). Proces xinetd plní stejnou úlohu jako inetd, ale disponuje dalšími možnostni.
Někteří další deamoni [2, s. 881] portmap : mapuje čísla služeb a porty TCP/IP, na kterých naslouchají servery. Když pracuje server RPC, registruje sám sebe za použití daemona portmap. Klient se dotazuje daemona portmap , aby zjistil, jak se připojit na příslušný RPC server. Pokud daemon portmap spadne , je nutné restartovat všechny služby, které na něm závisejí (např. inetd, NFS, …). Prakticky to znamená restartovat systém. rpc. nfsd : běží na souborových serverech a zpracovává požadavky od klientů NFS. smbd : je souborový a tiskový server v protokolu Samba. Poskytuje souborovou a tiskovou službu přes SMB protokol Windows. sshd : poskytuje službu pro vzdálené připojení. Jeho relace jsou přenášeny přes zašifrovaný kanál. hald : shromažďuje z několika zdrojů informace o hardware systému. dhcpd : přiděluje klientským počítačům IP adresu, masku, bránu, …. routed : stará se o směrovací informace , používané protokolem TCP/IP, aby přeposílal pakety po síti. Provádí pouze dynamické směrování – nemodifikuje cesty, které jsou definovány staticky. named : mapuje jména počítačů a síťové adresy za použití distribuované databáze. httpd: webový server, může posílat texty, obrázky, zvukové záznamy, …. ftpd : zpracovává požadavky od programu ftp na přenos souborů. in. fingerd : poskytuje informace o uživatelích, kteří jsou přihlášeni do systému
Literatura: [1] SHAH, S. , SOYINKA, W. LINUX – Administrace systému. 4. vyd. Praha: Grada Publishing, 2007. ISBN 978 -80 -2471694 -7 [2] NEMETH, E. , SNYDER, G. , HEIN, T. LINUX - Kompletní příručka administrátora. 2. vyd. Brno: Computer Press, 2008. ISBN 978 -80 -251 -2410 -9
- Slides: 10