Administrace Unixu a sítí Tomáš Kouba <17731@mail.vsfs.cz>, < tomas@jikos.cz>
Obsah přednášky I. Co je UNIX Vztah UNIX vs. Linux Opakování z pohledu uživatele (příkazová řádka) Správa uživatelů Disky, souborové systémy Nastavení sítě, firewall, routování
Obsah přednášky II. Síťový model a jeho protokoly ICMP, IP, TCP Aplikační protokoly a síťové služby vzdálaná správa, telnet, SSH mail, SMTP web, HTTP/HTTPS DNS FTP... o co bude zájem
Historie UNIX vznikl v roce 1969 v Bellových laboratořích Protiváha OS Multics (Multiplexed Information and Computing Service) Uzce spjat s jazykem C Vzniklo mnoho různých druhů: AIX, HP-UX, IRIX, Solaris, Tru64
Co je UNIX dnes Unix je chráněná značka společnosti The Open Group a k jeho užívání je potřeba certifikace. POSIX (Portable Operating System based on UNIX) série standardů organizace IEEE značená P1003.xx, postupně je přejímá vrcholový nadnárodní orgán ISO Fakticky se jedná o soubor standardů organizace IEEE pro implementaci operačního systému.
POSIX IEEE norma značená P1003.xx Splnění je nutné pro užití názvu UNIX označení *NIX apd. naznačuje nepřítomnost certifikace Příklady požadavků: API jádra operačního systému standardní utility (sed, grep, awk, sh) komunikační primitiva (IPC, thready)
GNU/Linux GNU hnutí svobodného software, RMS Linux GNU is Not Unix Zavádí licence GPL, LGPL, GFDL Mnoho utilit na Unixech je pod těmito licencemi Hlavní autor Linus Torvalds Jádro operačního systému Tisíce vývojářů
Shell Základní uživatelský a administrátorský nástroj Různé druhy (bash, csh, zsh) Proměnné shellu (PATH zbytek později) Spuštění programu Bez cesty, s plnou cestou Na pozadí (nohup) Programy vs. Klíčová slova bashe vs. Aliasy Job control Knihovna readline
Testovací prostředí http://kozel.vsfs.cz/ cygwin VM VirtualBox, VMWare, MS Virtual PC atd. Cygwin ( http://www.cygwin.com/ ) Na testy: host: elf.farm.particle.cz login: user1 až user30 heslo: whjk_497_reep
Příkaz man man [options] [section] name Sekce 1 - uživatelské příkazy 2 - služby jádra 3 - knihovní funkce C knihovny 4 - ovladače zařízení 5 - formáty souborů (konfigurační soubory) 6 - hry 7 - různé (síťové protokoly, sql příkazy) 8 - administrátorské příkazy 9 - funkce jádra dostupné ovladačům
Soubory - vlastnosti I. ls - výpis vlastností typy: plain -, directory d, block device b, char device c, symbolic link l, named pipe p, socket s file - hádání druhu souboru (text, mp3, jpeg) nlinks - počet hardlinků tohoto souboru
Soubory - vlastnosti II. práva: 3 trojice práv: vlastníka(u), skupiny(g), ostatních(o) r(ead), w(rite), e(x)ecute práva na mazání a vytváření souboru určuje adresář* navíc trojice suid/sgid (mění uid pod kterým běží program - např. ping), sticky (pro adresáře ruší *)
Soubory - vlastnosti III. změna práv: chmod(1) chmod 775 test chmod o=rx,+w,u-x test -rw-rwxr-x... test změna vlastníka: chown(1) vlastník má vždy právo měnit práva lze i rekurzivně nelze vrátit zpět!
Inode Reprezentuje soubor na disku, práva, časy, linky, typ, odkaz na datové bloky ls -i df -i df poskytuje informace o pripojených discích jejich definice viz /etc/fstab aktuální stav /etc/mtab nebo /proc/mounts nebo vystup příkazu mount připojování nových disků: mount
Inode - linky hard linky musí být na stejném file systému, nemohou ukazovat na adresáře symlinky se pomaleji resolvují, dangling problem
Soubory - základní příkazy cp kopírovaní souboru mv přesun/přejmenování rm smazání touch změna data a času cd - změna aktuálního adresáře pwd zjištění aktuálního adresáře mkdir/rmdir vytvoření/zrušení adresáře
Soubory - obsah I. cat výpis/zřetězení more, less stránkovaný výpis tail/head výpis konce/začátku souboru wc počet řádek/bytů/slov diff výpis rozdílu mezi dvěma soubory (doplňuje patch) cut výběr polí z řádek souboru paste spojení souborů po sloupcích split rozdělení souborů po řádcích tr konverze znaků (tr xy XY ) tee - výpis do souboru i na výstup
Soubory - obsah II. grep hledá řetězcový výskyt v textu na standardním vstupu podporuje regulární výrazy pro specifikaci řetězců Důležité volby -i (ignorecase) -v (vypisuje řádky na kterých daný pattern nebyl nalezen) -A, -B (context After a Before) -r (rekurzivně) pokud nebere vstup ze stdin, ale ze souborů/adresářů -H vynutí výpis jména souboru -A, -B víceřádkový kontext
Soubory - obsah III. sed stream editor umožňuje modifikovat vstup a dát ho na výstup (option -i pracuje se soubory na místě) podporuje regulární výrazy a další konstrukce podporuje řetězení příkazů nejdůležitější/nejpoužívanější příkaz s(ubstitute) hostname sed s/vsfs.cz// další příklady později u regulárních výrazů
Soubory - třídění sort Třídí soubory do standardního výstupu Umožňuje třídit numericky nebo alfabeticky (-n) Reverzně (-r) Umožňuje specifikovat podle kterého vstupního pole třídit -kpos1[,pos2] oddělovač pole pomocí -t Přepínač -u vyhodí z výstupu ekvivalentní řádky Shodné s aplikací uniq na výsledek -c pouze kontrola setřídění
Soubory vyhledávání beagle, locate - hledání v připravené databázi find - prohledávání adresářového stromu find path condition action Najde v dané path soubory vyhovující dané condition a provede na ně action Podmínky Name, path, size, type, links, inum, fstype User, group, rights Times older/newer Negace, závorky, logické spojky and (-a) or (-o)
Shell I. Podpora proměnných IFS, PATH, TERM, LOGNAME, HOME,... name=value name=value./cmd $name env, echo $name, export Do potomka (subshellu se předávají jen exportované proměnné) child nemůže modifikovat proměnné v parentu Podpora pro cykly while a for while často v kombinaci s read [seznam proměnných]
Shell II. Wildcards - *,?, {hd,sd}[a-c] Přesměrování >, >> (výstup), < a << 1>&2, 2>&1, 2>&1 >/dev/null, apod. Pipe (příkaz xargs) Zpětný apostrof ` Apostrofy, uvozovky -, ' Zrušení metavýznamu znaku - \ Spouštění subshellu ()
Shell III. expr podpora pro aritmetiku if-then-else VYSLEDEK=`expr 4 + 5` test -kontrola typů souboru a porovnání hodnot (rovnost, neprázdnost, apod.) Pro snadnější zápis existuje /usr/bin/[ fungující stejně jako test if [ `expr 3 + 4` -gt 1 ]; then echo 7>1 ; else echo 7<1 ; fi if [ -z "$PATH" ]; then echo -n "prazdna"; else echo -n "neprazdna"; fi; echo " cesta"
Cvičení Kolik existuje v systému uživatelských účtů? Vypište řádky 25-35 souboru /etc/passwd Vypište čísla skupin z /etc/passwd (bez opakování) Vypište obsah /etc/passwd setříděný podle UID Napište příkaz který vypíše všechny spustitelné soubory, které vlastní root a jsou spustitelné vlastníkem, skupinou i ostatními *Vytvořte v aktuálním adresáři dva soubory a na ně dva hardlinky. Napište shellový příkaz který vypíše všechny hardlinky v aktuálním adresáři na soubory v aktuálním adresáři