sítě v Linuxu - maturitu.zaridi.to
Transkript
Charakteristika operačního systému GNU/Linux ● ● ● OS Unixového typu - filozofie, procesy, uživatelé, souborový systém, základní programy a další věci jsou shodné s Unixovými standardy Víceúlohový OS - jeden člověk může mít spuštěno několik programů současně Víceuživatelský OS - více lidí může současně pracovat na jednom fyzickém počítači. OS uživateli vytváří virtuální prostředí tvářící se, jako by měl počítač sám pro sebe: nikdo nebude bez jeho povolení číst jeho soubory, nikdo nebude zasahovat do běhu jeho programů, bude moci používat periferní jednotky počítače (tiskárny, vstupní jednotky,..) atd. ● Víceprocesorový OS – podpora až 64 procesorů http://knihy.cpress.cz/DataFiles/Book/00000675/Download/K0819.pdf Historie Linuxu ● ● ● Autorem operačního systému Linux je pan Linus Torvalds. Původní verzi Linuxu napsal v roce 1991. Od té doby však byla tato verze mnohými dalšími programátory značně upravena a zdokonalena. Na vývoji Linuxu se nijak nepodílely společnosti, které vytvořily původní UNIXové systémy. Linux byl kompletně celý znovu vytvořen. Pan Torvalds však přišel s jednou velice zajímavou myšlenkou. Rozhodl se, že neponechá vývoj Linuxu jen na svých bedrech, ale podělí se o starosti s širokou programátorskou veřejností. Tak vlastně došlo k velice zajímavému vývoji operačního systému, který vlastně probíhá dodnes. Každou část operačního systému má na starosti jeden programátor. Je to jakýsi koordinátor. Toho kontaktuje spousta dobrovolníků, kteří sami vytváří různá vylepšení a doplnění operačního systému. Pokud je doplnění nebo oprava výhodné, je tato zahrnuta koordinátorem do celku operačního systému. Svobodný software, GNU ● ● ● Tento projekt byl započat v roce 1984. Jeho zakladatelem byl Richard Stallman. Komponenty tohoto projektu jsou šířeny pod licencí GPL a LGPL. Cílem tohoto projektu bylo vytvořit volně šiřitelný operační systém postavený na Unixové filozofii. Nyní je projekt hotov až na jádro Hurd, které je postavené na mikrojádru Mach. Jelikož původní jádro nebylo zatím dokončeno, používá se nyní systém GNU spolu s jádrem Linux, které začal Linus Torvalds. Mimo odbornou veřejnost se toto spojení chybně nazývá pouze Linux, celý název tohoto operačního systému však zní GNU/Linux. Co znamená GNU? – GNU je rekurzivní akronym pro větu "GNU is not Unix" (GNU není Unix). Gnu však také znamená pakůň hřivnatý. Ostatně logo to dokazuje skvěle. Výhody GNU/LINUX ● Moderní operační systém ● Bezpečný - bez virů a spywaru ● Velké množství aplikací ● Kancelářské nástroje (Office) ● Variabilní a přizpůsobitelný ● Víceuživatelský a víceúlohový ● Vzdálená správa a použití ● Kvalifikovaná podpora a dokumentace ● Dostupný v češtině ● Pro všechny zdarma GPL ● ● Linux GPL - General Public License ( „všeobecná veřejná licence “) – ● GNU licence pro svobodný software – zdrojové kódy software pod GPL mohou být svobodně upravovány a používány, šířeny však musí být opět pod GPL – tvoří základ projektu GNU GNU – akronym GNU is not UNIX – projekt zaměřený na svobodný software, inspirovaný operačními systémy unixového typu – původní cíl byl vyvinout operační systém se svobodnou licencí, který však neobsahuje žádný kód původního UNIXu – vývoj od r. 1982 , projekt úspěšně dokončen v roce 1992 přídáním jádra LINUX LINUX – jádro (kernel) operačních systémů UNIXového typu GNU/Linux – jeho zdrojový kód volně k dispozici pro veřejnost a kdokoli jej může svobodně používat, upravovat a dále distribuovat. GNU/Linux , distribuce ● GNU/Linux -unixový operační systém složen z linuxového jádra a zároveň z knihoven a nástrojů z projektu GNU + další zdroje. ● GNU/Linuxová distribuce - zkráceně distribuce – – – Distribuce je spojením systému GNU, Linuxového jádra a řady dalšího, převážně svobodného software. linuxové jádro + další aplikace GNU/Linux může dodávat každý => existuje spousta profesionálních nebo amatérských distribucí ● ● Všechny distribuce mají stejný základ - jádro OS, knihovny a nástroje od GNU. Liší se “obalem“ (tzn. instalátorem) a “složením“ (tzn. software, unikátní úpravy) Seznam distribucí ● ● ● Debian – Jejím zakladatelem je Ian Murdock. Distribuce je pojmenována po jeho ženě (Debra). Je to přísná open-source distribuce, ktrerá je vyvíjena dobrovolníky z celého světa. Debian nabízí on-line repozitář (server, kde jsou uloženy zdrojové kódy) softwarových balíků. Fedora – Jedná se o distribuci, za kterou stojí (sponzoruje) Red Hat, protože je na tomto systému založena. Je to volná distribuce, která vzniká podobně jako Debian. Klade důraz na otevřenost a bezpečnost. Red Hat – Jedna z nejstarších distribucí. Dnes velmi komerční, hlavně díky Red Hat Enterprise Linuxu. V Red Hatu vznikl balíčkovací systém RPM. Na desktopech se již moc nepoužívá. ● Slackware – pro pokročilejší uživatele. ● Mandriva (dříve Mandrakelinux) – vhodná pro začátečníky ● SUSE – Původně samostatná distrbuce, později koupena firmou Novell. . ● Ubuntu – distribuce vhodná pro začátečníky vychází z Debianu Start systému GNU/Linux na architektuře Intel ix86 ● ● Po zapnutí počítače s procesorem Intel se jako první provede program zvaný BIOS – BIOS je zkratkou pro Basic Input/Output System. Tento program je trvale uložen ve zvláštní paměti počítače. Realizuje některé základní testy a identifikuje technické vybavení, jako je pevný disk či disketová jednotka. Po identifikaci disku najde tzv. zaváděcí sektor (boot sector) a spustí kód, který v něm nalezne. Jestliže byl nalezen disk, ale žádný zaváděcí sektor, vypíše BIOS následující hlášení: Non-system disk or disk error BIOS vyhledá hlavní zaváděcí záznam MBR (master boot record) na pevném disku (závisí na nastavení BIOSu). Ten obsahuje kód (zaváděcí program), jehož úkolem je zavést operační systém. Pro operační systém Linux se tento program jmenuje – LILO (LInux LOader) – GRUB Loader Jak Linux přebírá kontrolu nad počítačem ● ● ● ● Nejdříve předá BIOS kontrolu zaváděcímu programu GRUB (LILO) a ten pak předá kontrolu jádru operačního systému Linux (Linux kernel). Jádro je centrálním programem celého systému a řídí všechny ostatní programy. V dalším kroku se Linux pokouší identifikovat technické vybavení počítače, na kterém běží. Musí znát informace o pevném disku, zda je nebo není k dispozici myš, zda je nebo není váš počítač připojen k počítačové síti a podobně. Jestliže tedy úspěš ně identifikuje veš keré technické vybavení počítače, spus tí jiný program, který již začne dělat něco užitečného. Proces init Proces init ● ● ● ● Zařizuje připojení ("mountování" - mount) a případnou kontrolu souborových systémů a swapovacích oblastí, nastavení hodin, jména systému, startuje systémové démony, síťové služby a procesy pro přihlášení do systémů Linux při kontrole souborového systému zjišuje, které části disku jsou již použity a které jsou volné – Proces init spouští další program označený jako fsck, jenž se pokouší vadné soubory a konfliktně obsazené části pevného disku opravit. Pokud je váš počítač připojen k síti, spustí se několik speciálních programů, jež zajišují komunikaci vašeho počítače s jinými počítači. Základním konfiguračním souborem programu init je /etc/inittab – Tento soubor popisuje, které procesy jsou startovány během zavedení systému a během normální činnosti. Příklad souboru /etc/inittab # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Things to run in every runlevel. Úrovně běhu systému - runlevel ● runlevel 0 - zastavení systému halt ● runlevel 1 - jednouživatelský režim ● runlevel 2 - víceuživatelský režim bez podpory sítě Multiuser, without NFS ● runlevel 3 - víceuživatelský režim s podporou sítě ● runlevel 4 - není použit ● runlevel 5 - víceuživatelský režim s podporou sítě a XFree X11 ● runlevel 6 - restart systému Single user mode Full multiuser mode unused reboot Proces logování událostí systému (systém logger) ● Jedny z prvních služeb, které jsou startovány procesem init, jsou démoni syslogd a klogd. – – Zapisují zprávy do systémových logů - zprávy jádra jsou obsluhovány démonem klogd, zatímco syslogd provádí logování zpráv z jiných procesů, a případně přes síť i z jiných systémů. Hlavní logovací soubor bývá /var/log/messages Getty a Login ● ● ● Getty je program který umožňuje připojit se přes sériové zařízení jako je virtuální terminál, textový terminál, nebo modem. – Zobrazí přihlašovací prompt a když zadáte vaše uživatelské jméno, getty jej předá programu login, který se zeptá na heslo, ověří to a spustí shell. – Je dostupných několik variant programu getty. Některé distribuce, včetně RedHat používají velmi malou verzi zvanou mingetty, která pracuje pouze s virtuálními terminály Getty jsou obyčejně startovány v /etc/inittab procesem init. Zpráva která se vypíše na vrchu obrazovky před přihlašovacím promptem je ze souboru /etc/issue. Login kontroluje detaily ohledně přihlášení uživatele v /etc/passwd Bash ● ● ● Po zadání správné kombinace přihlašovacího jména a hesla úloha login ověří v /etc/passwd který shell má spustit. Ve většině případů to na Linuxových systémech bude bash (Bourne Again SHell - vylepšený sh). Jeho úkolem je čtení uživatelských příkazů a jejich provádění. Bash je zároveň uživatelské rozhraní a interpret programovacího jazyka: Systém souborů, adresářová struktura GNU/Linux Základem systému souborů je kořenový adresář (root directory), který se značí / ● V Linuxu jen jeden kořenový adresář, označený '/'. ● Všechny další souborové systémy se připojují do jednoho stromu ● ● ● takže když chceme například přistupovat k souborům na disketě, tak ji připojíme do adresáře /mnt/floppy a pokud máme oddělený diskový oddíl pro adresáře uživatelů, tak jej připojíme do adresáře /home. Souborové systémy se připojují příkazem mount a odpojují příkazem umount. Soubor /etc/fstab uvedeny všechny disky a souborové systémy, které se při startu automaticky připojí ● nemusíme ručně připojovat při každém spuštění systému všechny disky ● příkaz df zobrazí kapacitu, obsazení a volné místo všech připojených jednotek (pevné disky, CD-ROMy) LINUX - Adresářová struktura ● / - kořen souborového systému, začátek stromové struktury ● /bin - základní spustitelné soubory pro použití všemi uživateli ● ● /boot - zde je umístěno jádro (kernel) systému + soubory zavaděče (boot loader) GRUB nebo LILO /dev - soubory v tomto adresáři reprezentují jednotlivá fyzická zařízení nebo psedozařízení systému. ● /etc - globální konfigurační soubory systému ● /home - domovské adresáře uživatelů ● /lib - základní sdílené knihovny systému ● /lost+found - ztracené a opravené soubory po chybách FS ● ● ● ● ● ● ● /mnt - do místních podadresářů se připojují další souborová zařízení, např. do "/mnt/floppy" disketa, do "/mnt/cdrom" CD /opt - zde bývají SW aplikace, které nejsou standardní součástí distribuce /proc - soubory nastavení a stavu systému a jednotlivých procesů - dalo by se říci, že je to mapa stavu paměti RAM /root - domovský adresář superuživatele (root) /sbin - systémové privilegované spustitelné soubory, používané uživatelem root /tmp - adresář pro odkládací a pomocné soubory /usr - další stromová struktura, obsahuje velké množství informací, jako knihovny, zdrojové kódy, spustitelné soubory, konfigurační soubory a další. Souborový systém (filesystem) ● ● ● ● způsob organizace informací (souborů) tak, aby bylo možné je snadné najít a přistupovat k nim Souborový systém umožňuje ukládat data do souborů, které jsou označeny názvy. Obvykle také umožňuje vytvářet adresáře, pomocí kterých lze soubory organizovat do stromové struktury. Žurnálovací systém souborů - zapisuje změny, které mají být v počítačovém systému souborů provedeny, do speciálního záznamu nazývaného žurnál (anglicky journal). – účel - ochránit data na pevném disku před ztrátou integrity v případě neočekávaných havárií (výpadek napájení, neočekávané přerušení vykonávaného programu, pád systému apod.). Windows: NTFS … používá žurnálovací systém souborů FAT16, FAT32 … nepoužívá Souborové systémy ● ext2 - open source souborový systém – – umožňuje nastavit práva UGO (uživatele, skupiny,ostatních) poskytuje pevné odkazy, symbolické odkazy, zařízení, adresáře, pojmenované roury, … – ● ext3 - navazuje na ext2 – – ● zpětně kompatibilní žurnálovací filesystem ReiserFS - nevýhoda - dlouhá doba „mountování“ a dlouhé prodlevy čtení/zápis u velkých datových kapacit Typy souborů ● - ● d directory (adresář, seznam jmen souborů) ● l plain file (obyčejný soubor) symbolic link (symbolický odkaz) I-node ● ● ● (česky I-uzel) datová struktura uchovávající metadata o souborech a adresářích (metadata - strukturovaná data o datech.) Nese informace o tom, jaké jsou přístupové práva k danému souboru, kdy došlo k poslední změně či prístupu k souboru, kdo je jeho vlastníkem, počet hardlinku a především informace o tom, kde se nachází obsah souboru ve filesystemu. V adresářích jsou pak dvojice název souboru a I-uzel, které definují soubory a adresáře ● Výpis názvů spolu s čísly I-uzlů v adresáři: ls -i ● Výpis obsazeného datového prostoru: df ● Výpis počtu obsazených I-uzlů: df -i Linky - odkazy ● hard link (pevný link – odkaz) – jedno číslo i-nodu má více jmen souborů – neexistuje originál či kopie - dva soubory mají společný I-node – pevný odkaz vytvoříme příkazem: ln jméno_cíle [jméno_pev_odkazu] Pro zjištění, kolik jmen souborů ukazuje na daný soubor, můžeme použít příkaz stat nebo se podívat na číslo v druhém sloupci ve výpisu adresáře příkazem ls -l ● – ● symlink (soft link, symbolický odkaz) – soubor typu l, ve kterém je napsána cesta směřující k odkazovanému souboru (Obdoba zástupce v OS MS Windows) – může odkazovat i na adresáře – Symbolický odkaz vytvoříme příkazem: ● ln -s jméno_cíle [jméno_sym_odkazu] Vyhledávání souborů ● ● ● which používán k rychlému zjištění umístění nějakého programu. Prohledává jen adresáře uvedené "v cestě" PATH a jako výsledek vrací první výskyt hledaného souboru a adresářovou cestu k němu $ which bash /bin/bash whereis podobně jako which, ale navíc může vyhledávat man stránky a zdrojové soubory $ whereis bash bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz find prohledává celý souborový systém $ find / -name xinitrc ● locate prohledává celý souborový systém stejně, jako to dělá příkaz find, ale namísto skutečného souborového systému prohledává svoji databázi, která se aktualizuje jednou denně. Ručně lze databázi aktualizovat pomocí příkazu updatedb Základní příkazy OS Linux ● ls vypíše obsah aktuálního nebo zadaného adresáře ● cd [ADRESÁŘ] ● pwd zobrazí aktuální adresář ● cp zkopíruje soubor do jiného souboru, nebo zkopíruje několik souborů do zadaného adresáře ● mv přesouvá soubory do jiného adresáře , nebo je přejmenuje ● mkdir vytvoří nový adresář ● rmdir zruší prázdný adresář ● rm smaže jeden nebo více souborů ● chmod mění atributy souborů změní aktuální adresář Základní příkazy OS Linux ● cat , less vypíše obsah souboru na obrazovku ● df zobrazí kapacitu, obsazení a volné místo všech připojených jednotek (pevné disky, CD-ROMy) ● du zobrazí velikosti adresářů ● free zobrazí kolik je obsazené a volné paměti ram a místa v odkládacím prostoru (swap) ● passwd změna hesla Zabezpečení souborového systému, přístupová práva ● ● Přístupová práva jsou atributy (parametry) souboru nebo složky, které říkají, jaká práva k nim mají určití uživatelé či skupiny uživatelů Oprávnění se dělí do tří skupin podle: – Vlastníka (číselné UID) – Skupiny (do které patří vlastník, číselné GID) – Ostatní ● Vlastník je ten, kdo soubor vytvořil a jehož UID číslo je zapsáno v i-uzlu ● Aktuální skupina toho, kdo vytvořil soubor Typ práva Symbolické vyjádření Oktalové vyjádření Čtení Zápis Spuštění r (Read) w (Write) x (eXecute) 4 2 1 ● ● Pro práci více osob na jednom projektu je nutné sdělování práv, tj. dát ostatním osobám (uživatelům) práva k práci se soubory. Práva uživatelů jsou: ● Právo na čtení – r ● Právo na zápis - w Právo na spuštění souboru - x Tato práva se určují zvlášť pro majitele souboru, skupinu a ostatní. ● – – Stejná přístupová práva se dají nastavit i adresáři, ale znamenají něco trochu jiného. ● ● ● Právo čtení povoluje přečíst, co je uloženo v adresáři. Právo zápisu dává možnost měnit obsah adresáře (nové nebo mazat) Právo spuštění povoluje, aby bylo možno vstoupit do adresáře Změna přístupových práv ● ● ● ● pomocí příkazu chmod Komu práva přiřadit: u - user (vlastník) g - group (skupina) o - others (ostatní) Jaká práva přiřadit: r - read (čtení) w - write (zápis) x - execute (spouštění) Jakou operaci použít: = - nastavit + - přidat - odebrat ● Příklady: ● chmod u+w jméno_soubor – ● chmod o+x jméno_soubor – ● přídá právo zápisu pro vlastníka souboru přídá právo spouštění pro ostatní uživatele chmod g-r jméno_soubor – odebere právo čtení pro primární skupinu uživatele Rozšířená (speciální) práva ● Standardně dědí potomek (nový proces) oprávnění svého rodiče. Někdy je však nutné, aby měl spuštěný program jiná (vyšší) oprávnění Symbolické vyjádření s s t ● uživatel skupina ostatni setuid setgid sticky Používá se hlavně v případech, kdy chceme dočasně zvýšit poskytnutá práva setgid - podobně jako setuid - mění skupinu – ● Právo setuid - Program s nastaveným setuid bitem má při běhu práva svého vlastníka. – ● Kategorie Používán je hlavně u adresářů, kdy po provedení příkazu patří všechny nově vytvořené soubory do určené skupiny a ne do hlavní skupiny uživatele. sticky bit - ve starších verzích Unixu – zamezení odtranění programu z paměti – Použití při práci s adresáři - při nastavení tohoto příznaku smí soubory v tomto adresáři přejmenovat či smazat pouze jejich vlastník ACL (Access Conrol List ) ● ● ACL - seznam oprávnění připojený k nějakému objektu ( souboru). Seznam určuje, kdo nebo co má povolení přistupovat k objektu a jaké operace s ním může provádět. V typickém ACL specifikuje každý záznam v seznamu uživatele a operaci. ACL v Linuxu - rozšiřuje práva souboru – může nastavit, který konkrétní uživatel do toho kterého souboru může zapisovat, číst atd.. – Pro práci s ACL slouží příkazy getfacl a setfacl. – setfacl - nastavování práv – getfacl - výpis práv Příkazový interpret Shell, systémové prostředí ● ● ● ● Příkazový řádek je zobrazován speciálním programem, který se nazývá příkazový interpret - shell Shell - interpret programovacího jazyka. ● Čte příkazy z terminálu nebo ze souboru a provádí je Příkazové interprety mají svůj vlastní programovací jazyk a programy napsané v tomto jazyce se nazývají skripty příkazového interpretu - shell scripts Různé Unixovské shelly: – – – – ● Bourne shell C-shell Korn shell Bourn again shell sh csh ksh vychází z Bourne shellu - bash představitel GNU, vychází z Bourne shellu bash je implicitním příkazovým interpretem používaným v operačním systému GNU/Linux http://cs.wikipedia.org/wiki/Bourne-Again_shell Shell - spuštění a ukončení ● Po přihlášení se uživateli spustí shell, který má uvedený v souboru /etc/passwd – Pro spuštění bash shellu je uvedeno /bin/bash – Tento první spuštěný shell se nazývá login shell. ● Provádí soubor /etc/profile - login script pro všechny uživatele při přihlášení do systému ● Dále provádí tyto skripty (pokud existují) v domovském adr. uživatele: .bash_profile – .bash_login – .profile Při odhlašování provádí skript v domovském adresáři: – ● – .bash_logout Systémové proměnné ● Každý program běžící v Linuxu ma přiřazeno jisté prostředí –enviroment ● Prostředí je množina dvojic [systémová proměnná, hodnota]. ● Systémové proměnné jsou znakové řetězce - píší se velkými písmeny. Proměnné se vytvářejí v shellu zápisem PROMENNA=hodnota, ● exportují se příkazem export PROMENNA. ● ● zjištění hodnoty proměnné - příkaz: echo $PROMENNA. vypsat prostředí shellu (všechny proměnné) ● ● ● příkazy: printenv nebo env Znak dolaru se používá k vyhodnocení systémové proměnné, avšak pouze v kontextu s příkazovým procesorem – přesněji s příkazovým procesorem, jenž realizuje interpretaci příkazu. http://www.abclinuxu.cz/clanky/navody/bash-i Některé důležité systémové proměnné Proměnná HOME TERM SHELL USER PATH Obsahuje Příklad Domovský adresář /home/novacek Typ terminálu xterm,vt100,console Cesta k příkazovému procesoru /bin/bash Jméno účtu novacek Seznam adresářů, ve kterých se automaticky vyhledávají programy ke spuštění /bin:/usr/local/bin:/usr/bin/X11 Proměnná PATH ● ● Systémová proměnná PATH obsahuje seznam adresářů oddělených dvojtečkou, ve kterých systém automaticky vyhledává spustitelné programy. Když například zadám příkaz ls bude příkazový procesor bash hledat program ls nejdříve v adresáři /home/larry/bin, který jsem vytvořil pro ukládání mých vlastních programů. Program ls jsem však nenapsal já, proto zde příkazový procesor tento příkaz nenašel. Jako další prohledává příkazový procesor adresář /bin. A zde program ls našel. Protože soubor ls je spustitelný program, přestane příkazový procesor dále hledat a spustí jej. Může se stát, že v jiném adresáři bude také uložen spustitelný program ls (například v adresáři /usr/bin), ale příkazový procesor jej nespustí, pokud mu to výslovně nepřikážete: Přesměrování vstupů a výstupů ● ● ● ● Jako standardní vstup bývá nejčastěji chápán vstup z klávesnice, standarní výstup je nejčastěji veden na obrazovku (zrovna tak standardní chybový výstup) LINUX však umožnňuje přeměrování standardního vstupu nebo výstupu ze/do souboru. To například umožňuje načítat vstupní data ze souboru místo klávesnice, nebo vypisovat výstupní data do souboru (místo na obrazovku). Přesměrování standardního výstupu – Přesměrování lze provést pomocí znaku '>' následovaným jménem souboru, do kterého se má výstup přesměrovat, např: – ls -l > vystup.1 – ls -l >> vystup.1 Přesměrování standardního vstupu – – – Přesměrování lze provést pomocí znaku '<', například příkaz cat < vstup.1 Kolony (pipeline) ● ● V Unixu se programy, které čtou data ze standarního vstupu a vypisují je na standardní vstup někdy označují jako tzv. filtry. Jedná se například o programy cat, more, grep ... Takovéto programy lze pomocí mechanismu, který se označuje jako roura (pipe), spojovat do tzv. kolon (pipeline). – – – Princip spočívá v tom, že standardní výstup z jednoho programu je přeměrován na standardní vstup jiného programu. To lze na příkazové řádce zajistit pomocí znaku '|'. Například výpis souboru 'file1' na obrazovku lze zajistit pomocí příkazu cat file1. Když je soubor příliš dlouhý, uteče nám text za horní okraj obrazovky. Tomu se dá zabránit buď tak, že místo příkazu cat použijeme příkaz more, a nebo příkaz more použijeme jako filtr: ● cat file1 | more Expanze jmen (souborů) tzv. "žolíkové znaky" * libovolná posloupnost znaků (i nulové délky), nezastupuje řetězec ? právě jeden libovolný znak znaků začínající tečkou [] právě jeden znak z množiny znaků uvedených v těchto závorkách, při specifikaci lze použít následující dva speciální znaky: – používa se pro označení intervalů znaků z množiny ASCII (např. a-z, 0-9), – ! negace výčtu znaků Programování v shellu – skripty, spouštění scriptu, strukturované příkazy ● ● ● ● ● ● ● BASH není pouze příkazovou řádkou, ale zároveň také plnohodnotným skriptovacím jazykem rozdíl mezi skriptovacím a kompilovaným jazykem Skriptovací jazyky začínají psaním zdrojového kódu, ale nejsou kompilovány. Místo toho interpreter jazyka čte instrukce ze zdrojového kódu a podle obsahu tyto instrukce vykonává Shell umí interpretovat scripty ( textové příkazové soubory) Script se často používá v situacích, které se opakují a je výhodné je zautomatizovat - např. boot systému, přihlášení uživatele apod. Hlavní výhodou scriptu je jeho čitelnost a snadná úprava. Nevýhodou je pomalé zpracování. Script lze spustit stejně, jako binární program. Soubor by měl být umístěn v adresáři uvedeném v proměnné PATH, uživatel musí mít právo x http://docs.linux.cz/programming/interpreted/bashdoc-1.4/ Proměnné ● ● Proměnné jsou "krabičky" do kterých se ukládají hodnoty (laicky řečeno). Místa v paměti označená identifikátorem (názvem proměnné). V bash se proměnné deklarují např takto: #!/bin/bash x=5 echo "Hodnota proměnné x je $x" ● k proměnné se přistupuje pomocí znaku symbolu dolaru ($) uvedeného před názvem proměnné Hlavní systémové proměnné ● $$ - obsahuje pid aktuálního procesu (ať víte co zabíjet :-) ● $0 - obsahuje jméno právě prováděného skriptu: mujskript.sh ● $1 - obsahuje první argument, předaný vašemu skriptu, na příkazové řádce: parametr1 ● $9 - obsahuje 9-tý argument z příkazové řádky: parametr9 ● $# - obsahuje počet argumentů z příkazové řádky – mujskript.sh parametr1 parametr2 parametr3 ... parametr9 Vstup/výstup ● ● Skript může získat od uživatele data příkazem read promenna. Tímto se načte do proměnné promenna vše až do stisku klávesy enter. – Pokud uvedeme více proměnných, uloží se do každé proměnné jedno slovo. – read promenna1 promenna2 .... promennaN výstup programu zajišťuje příkaz echo – echo “ Ahoj, ja jsem bash skript a jmenuju se $0. Co jsi ty?“ echo -n “ Zadej svuj plat:“ read plat echo “ Nevypadas jako bys vydelaval $plat korun.“ SHELL - Řídící struktury ● ● ● ● Řídící struktury můžou váš program řídit a tím ho udělat mnohem více užitečný a efektivnější. Velmi důležitá je například detekce chyb Řídící struktury jsou: if , case while , until , for , Každá tato struktura je tzv. párová. To znamená, že začíná jako "návěst" a končí taky "návěst". Například struktura podmínky začíná if a končí fi – If ... else ... elif ... fi – Case ... in ... esac – – While ... do ... done – Until ... do ... done – For ... in ... do ... done IF ● struktura pro rizeni pomoci podminek if [ podminka ] then prikazy else prikazy fi Pokud je podminka splnena vykonaji se prikazy za slovem then, pokud podminka neni splnena provedou se prikazy za slovem else, fi urcuje konec CASE ● case – struktura podobná funkci if, ale zde můžeme testovat více hodnot case vyraz in hodnota1) prikazy;; hodnota2) prikazy;; hodnota3) prikazy;; esac Pokud je promenna vyraz rovna hodnote1, tak se vykonaji prikazy(ukoncene jsou ;;). Konec funkce se ukonci slovem esac. WHILE ● while - cyklus se provádí dokud je podmínka splněna while [ logicky_vyraz ] do prikazy done UNTIL ● until -příkaz je podobný přikazu while, ale je opačná podminka. cyklus trvá tak dlouho, dokud neni splněna podmínka until [ logicky_vyraz ] do prikazy done FOR ● tento cyklus je vhodny pro pripady, kdy vime, kolikrat se bude cyklus opakovat for promenna in seznam do prikazy done Příklad: for i in 'ls *.txt' do cp $i ${i}.bak done Program vyhleda v aktualnim adresari vsechny soubory s priponou *.txt a zalohuje je na soubory s priponiu *.bak. Logické výrazy ● K vyhodnocováni logických výrazů se používá – Příkaz test – nebo hranatá závorka [ výraz ] If test -f /etc/foo then #Soubor existuje. Zkopíruj tedy soubor cp /etc/foo . echo "Hotovo!" else # Soubor neexistuje. Vypiš tedy chybu echo "Soubor neexistuje!" exit fi if test -f /etc/foo then # se dá také zapsat takto: if [ -f /etc/foo ]; then Správa procesů - manipulace s procesy, signály ● ● ● ● ● Program - soubor na disku, který můžete spustit a on bude vykonávat nějakou činnost Proces – program, který je spuštěn a běží. ● Synonymum = úloha (task) Linux – víceúlohový systém -> může současně běžet více procesů V Linuxu (obecně i Unixu) sestává každý běžící program z nejméně jednoho procesu. Z hlediska operačního systému jsou jednotlivé procesy navzájem nezávislé. Procesy, které přestoupí svoji vymezenou oblast, jsou okamžitě ukončeny – tato vlastnost vede k velké stabilitě unixových systémů PID – identifikační číslo procesu ● ● ● ● Na uživatelské úrovni jsou soubory identifikovány svým jménem, které odpovídá jménu spustitelného souboru Systém jednoznačně identifikuje procesy pomocí čísla - PID Každá úloha běžící v systému má svoje unikátní identifikační číslo procesu. Dva různí uživatelé mohou k odkazu na proces použít totéž identifikační číslo a pak mají jistotu, že se jedná o tentýž proces (samozřejmě za předpokladu, že jsou přihlášeni k témuž systému). Výpis příkazu top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 13743 root 15 0 98.4m 21m 1660 S 12.3 8.5 1:52.07 X 14057 misak 15 0 61884 45m 19m S 4.3 9.0 0:59.27 konqueror 14047 misak 15 0 80420 36m 22m S 2.3 7.5 1:14.01 amarokapp Příkaz ps – vypsání běžících procesů ● příkazem ps je možno zobrazit přehled všech spuštěných procesů, včetně informací o jejich stavu, velikosti a jménu, využití CPU, doby běhu PID – identfikační číslo procesu USER – vlastník procesu %CPU – Informace o velikosti oblasti CPU, kterou proces zabírá %MEM – Informace o velikosti paměti, kterou proces zabírá TIME – doba, po kterou byl proces zpracováván procesorem COMMAND – Název procesu (programu) S je process status (stav konkrétního procesu) ● ● ● ● R = běžící S = spící T = traceovaný nebo zastavený Z = zombie PPID (parent process identification), ● ● ● PID rodičovského procesu. (číslo procesu, který aktuální proces spustil ) "řídící" proces, který vyvolal spuštění svého takzvaného dceřiného procesu procesy tvoří strom (hierarchie) ---> každý process má svého rodiče (parent) a potomky (child) Proces ● ● ● ● init Prvním procesem, který je spuštěn a má pořadové číslo 1 je init. Všechny další procesy jsou jeho potomky a jeho zabití vede k ukončení celého systému. Další proces má přiřazeno číslo 2, 3, ..., až´po jisté číslo n. Jeho hodnota bývá nejčastěji 32768. Skutečná hodnota na vašem systému je uložena v souboru /proc/sys/kernel/pid_max. Pokud systém dosáhne maxima, začne přidělovat volná čísla zase od začátku. Procesy – nejčastější příkazy ● ps ● ps aux ● - výpis všech spuštěných programů - podrobný výpis procesů všech uživatelů top - interaktivní program, který slouží k výpisu procesů, které jsou řazeny podle určitého klíče např: CPU ● kill PID - ukončí (odstřelí, zabije) proces jednoznačně identifikovný PID ● kill -9 PID ● spuštění procesu na pozadí # <příkaz> & ● bg přesun procesu na pozadí ● fg přesun procesu na popředí - ukončí proces bez varování http://www.linuxsoft.cz/article.php?id_article=409 Procesy - signály ● ● ● Signál je jedním ze základních prostředků meziprocesové komunikace Poslání signálu běžícímu procesu vyvolá asynchronní reakci - proces přestane vykonávat běžný kód a přednostně reaguje na signál Nejčastější signály: – SIGTERM - standardní ukončení programu – SIGKILL - násilné ukončení programu – SIGSTOP - pozastavení běhu procesu – SIGCONT - znovuspuštění pozastaveného procesu – SIGHUP - ukončování terminálu (odhlášení) – SIGINT - přerušení programu klávesovou zkratkou Ctrl-C démon (daemon) ● proces, který neustále běží „na pozadí“, kde průběžně vykonává nějakou činnost a není (za běžných okolností) ukončován. ● démon obvykle nijak nekomunikuje s uživatelem, pracuje samostatně ● proces , který běží v systému a poskytuje nějaké služby ● používá se také termín služba (service). ● běží nezávisle na tom, jestli je k systému někdo přihlášen nebo ne, spouští se obvykle hned po startu systému – web server – dns server – dhcp server – sendmail, .... Plánování procesů - cron , at ● ● ● ● ● ● Uživatelé i správci systému často potřebují spouštět některé programy pravidelně. Například administrátor systému, který musí sledovat zaplněnost disku, by mohl chtít pravidelně spouštět příkaz, jenž by „vyčistil“ adresáře dočasných souborů (/tmp a /var/tmp). Program by odstranil starší dočasné soubory, které po sobě programy z různých důvodů korektně nesmazaly. Takovéto služby nabízí program cron. Každý uživatel má vlastní soubor crontab, jenž obsahuje seznam příkazů, které chce vlastník spustit, a časy, kdy se mají tyto příkazy provést. Démon cron má na starosti spouštění těchto příkazů v požadovaném čase. Služba at je podobná službě cron, provede se ale jenom jednou. Příkaz je vykonán v určeném čase, ale jeho spouštění se neopakuje. Podrobnější informace viz manuálové stránky cron(1), crontab(1), crontab(5), at(1) a atd(8). http://cs.wikibooks.org/wiki/Plánování_spouštění_úloh Nástroje pro práci s textem, význam textového formátu dat ● základní uživatelské rozhraní (ve smyslu komunikace uživatele se sytémem) je textové rozhraní a příkazový řádek – ● ● ● ● grafické rozhraní je něco „navíc“, jenom jakási nadstavba cokoliv se v Linuxu prezentuje jako soubor, s kterými se na příkazovém řádku snadno pracuje Linux je založen na textových souborech, s kterými uživatel přímo pracuje (prohlížení,editace,další zpracování,...) Aplikace v Linuxu ukládají konfigurace do konfiguračních souborů – jednoduchá editace – jednoduchá záloha Propracované logování – vše se zapisuje do logů – možnost dohledat chyby, útoky, ... Textové editory ● nejrozšířenější textové editory v GNU/Linuxu Vim a Emacs ● další editory mcedit, joe ● ● používají regulární výrazy k vyhledávání textu a také k jeho nahrazování Editor Vim (vi) – Spuštění - vi soubor – Režimy - editační , příkazový , řádkový – Základní příkazy – Pohyb v textu – Hledání vzorků – Filtry ● ● jsou to programy, které jako vstup přijímají text, provedou s nim nějaké operace a pak upravený text vypíšou na obrazovku cat - tento příkaz čte data ze standardního vstupu a zobrazuje je na standardním výstupu (načte text a zobrazí jej) ● more - používá se k dokonalejšímu vypsání souborů, interaktivní ● less - vylepšení příkazu more ● sort - příkaz načte vstupní soubor a setřídí ho ● cut - vypíše na obrazovku zadané sloupce ze vstupních souboru ● ● ● head - příkaz zobrazí prvních 10 řádků ze souboru (počet řádků lze měnit pomocí parametru) tail - příkaz zobrazí posledních 10 řádků ze souboru (počet řádků lze měnit pomocí parametru) grep Příkaz grep Příkaz grep čte data (text) ze standardního vstupu a na výstup vypisuje řádky odpovídající jistému vzoru. Příkaz ls -l /dev | grep petera vezme z výstupu příkazu ls pouze řádky se soubory, na nichž se vyskytuje slovo 'petera', což budou pravděpodobně soubory, jejichž vlastníkem je uživatel 'petera'. Pokud lze předpokládat, že řádku bude mnoho, lze ještě použít filtr more, např: ls -l /dev | grep root | more Regulární výrazy ● ● ● ● zkráceně označovaný regexp či regex je to předpis pro porovnávání textových řetězců podle určitých vzorků univerzální pomocník při práci s textem sestávají z "normálních" znaků a z metaznaků Jejich prostřednictvím můžete: ● vytahovat z textových dat údaje, které vás zajímají ● přetvářet je do podoby, kterou potřebujete ● vyhledávat a nahrazovat v textových editorech a dalších programech ● regulární výrazy – wikipedia ● http://www.root.cz/serialy/regularni-vyrazy/ ● http://www.regularnivyrazy.info/ Regulární výrazy ● ● ● ● Je to předpis pro porovnávání textových řetězců podle určitých vzorů sestávajících z "normálních" znaků a z metaznaků - znaků majících zvláštní význam, viz dále. Rozlišují se malá a velká písmena (většina implementací umožňuje jejich rozlišení potlačit, pokud je to žádoucí). Regulární výrazy jsou "žravé". To znamená, že se každá část výrazu snaží vždy "spolknout" co nejvíce vyhovujících znaků, teprve pak se pokračuje ve zkoumání dalších částí výrazu. Mají paměť - můžete si zapamatovat část vyhovujícího řetězce a použít ji později. Používají se mj. v textových editorech (vi, ed,..), skriptovacích programech (awk, perl, Tcl,..), prostředcích pro práci s textem (grep, sed,..). Knihovnou pro práci s regulárními výrazy dnes disponuje řada programovacích jazyků. Regulární výrazy - použití ● ● Používá celá řada programů v Unixu. Umožňují prohledávat soubory (grep, egrep), editovat je (sed, vi), analyzovat a vypočítávát zajímavé údaje (awk) či nabízejí plnohodnotný programovací jazyk, kde si můžete dělat, co vás napadne (Perl, Tk). GREP a spol. ● ● ● ● slouží k vyhledávání v souborech Typické použití: hledáme určitý identifikátor ve zdrojových kódech nebo chceme zjistit, odkud se spouští určitý program. Spuštění: grep vzor seznam_souborů – Vzorem je regulární výraz. – Výstup programu tvoří řádky, které vyhovují zadanému vzoru Pokud program zkoumá více než jeden soubor, vypíše zároveň před každý řádek název souboru, ze kterého pochází. grep , egrep , fgrep SED ● Program sed je neinteraktivní editor ● Zadáte mu sadu příkazů a on podle nich zpracuje vstupní text Regulární výrazy se v sedu vyskytují hned ve dvojí roli: ● ● Lze je použít k vyhledání řádků, na které se má vztahovat určitý příkaz. Druhým místem výskytu regulárních výrazů je příkaz pro nahrazování, který má tvar s/vzor/náhrada/. ● Vyhledává regulárním výrazem zadaný vzor a pokud jej najde, vloží na jeho místo náhradu AWK ● ● ● Program awk realizuje specializovaný programovací jazyk, který umožňuje zpracovávat textové soubory s pevnou strukturou (např. /etc/passwd, výstup příkazu ls -l a podobně). Regulární výrazy opět vystupují ve dvou známých rolích: určují řádky, kterých se operace týká, a vyskytují se v nahrazování. Základním problémem awku je jeho jednostrannost. Syntaktický tvar programů je velmi nezvyklý a držet jej v hlavě kvůli úzce vymezené skupině úloh, které dokáže řešit, se podle mého soudu nevyplatí. ● http://cs.wikipedia.org/wiki/AWK ● http://www.ucw.cz/~hubicka/skolicky/skolicka20.html ● http://www.ics.muni.cz/zpravodaj/articles/33.html Základy práce v systému - základní příkazy, archivace, vyhledávání souborů, instalace a aktualizace SW ● ls vypíše obsah aktuálního nebo zadaného adresáře ● cd [ADRESÁŘ] ● pwd zobrazí aktuální adresář ● cp zkopíruje soubor do jiného souboru, nebo zkopíruje několik souborů do zadaného adresáře ● mv přesouvá soubory do jiného adresáře , nebo je přejmenuje ● mkdir vytvoří nový adresář ● rmdir zruší prázdný adresář ● rm smaže jeden nebo více souborů ● chmod mění atributy souborů změní aktuální adresář Základní příkazy OS Linux - pokračování ● cat , less vypíše obsah souboru na obrazovku ● df zobrazí kapacitu, obsazení a volné místo všech připojených jednotek (pevné disky, CD-ROMy) ● du zobrazí velikosti adresářů ● free zobrazí kolik je obsazené a volné paměti ram a místa v odkládacím prostoru (swap) ● passwd změna hesla Archivace - program tar ● K archivaci dat slouží program tar (tape archiver) – – ● ● ● ● Původně byl určen k archivaci na magnetickou pásku Vytvoření archivu znamená, že několik souborů spojíme do jednoho a jsme schopni tento celistvý soubor zase následně rozdělit do původních souborů anebo přidat/ubrat soubory do/z tohoto archivu Program tar pracuje ve čtyřech různých módech, – x - rozbalení existujícího archivu (extract), – c - vytvoření nového(create), – t - výpis obsahu – r - přidání souboru do archivu. Vytvoření archivu: tar cvf home.tar /home/kmartin – f (file) - říká, že tar má zapisovat do souboru , v - verbose Rozbalení archivu: tar xvf home.tar Komprimace ● ● ● ● ● ● Komprimace - zmenšení velikosti souboru V GNU/Linuxu nemůžeme vzít adresář a ten celý zkomprimovat do jednoho souboru. Nejprve si vytvoříme archiv, který bude tyto soubory obsahovat a ten následně zkomprimujeme. gzip - používá pro kompresi kompresní metodu LZ77 – Defaultní přípona gzip archivu je .gz. – Balení (komprimace): – Rozbalování (dekomprimace): gzip -d jmeno_gzip_archivu gzip jmeno_souboru ... Bzip2 - komprimuje pomocí Burrows-Wheeler block sorting text compression algorithm – Defaultní přípona bzip2 archivu je .bz2. – Balení (komprimace): – Rozbalování (dekomprimace): bzip2 -d jmeno_bzip2_archivu bzip2 jmeno_souboru ... compress , uncompress – přípona .Z (starší, už se nepužívají) Shrnutí - archivace ● ● ● Archivace + komprimace ➢ tar cf archiv.tar soubory ; bzip2 archiv.tar ➢ tar cf - soubory | bzip2 > archiv.tar.bz2 ➢ tar cfz archiv.tar.gz soubory Dekomprimace – bzip2 -d archiv.tar.bz2 ; tar xf archiv.tar – bzip2 -cd archiv.tar.bz2 | tar xf - – tar xfz archiv.tar.gz souborový manažer Midnight Commander zvládá rozbalování archivů tar, gz, bz2, tar.gz, tar.bz2 ..... – Na takovém archivu jen stačí zmáčknout [enter], tím se z archivu stane readonly adresář a zabalené soubory lze prohlížet a vybalovat (kopírovat z archivu). Vyhledávání souborů ● which - prohledává jen adresáře uvedené "v cestě" PATH a jako výsledek vrací první výskyt hledaného souboru a adresářovou cestu k němu ● ● whereis - pracuje podobně jako which, ale navíc může vyhledávat manuálové stránky a zdrojové soubory find - příkaz find umí hledat cokoliv a kdekoliv – ● Práce příkazu find trvá trochu déle, protože musí prohledat celý adresářový strom. Navíc, pokud jej spouštíte jako normální uživatel, obdržíte nejspíš spoustu chybových hlášení o odmítnutém přístupu do adresářů, které smí prohlížet jenom root locate - příkaz prohledává celý souborový systém stejně, jako to dělá příkaz find, ale namísto skutečného souborového systéu prohledává svoji databázi. Databáze je nastavena tak, aby se automaticky updatovala Instalace a aktualizace software ● ● ● ● K instalaci, odinstalaci a aktualizaci softwarového vybavení slouží v GNU/Linuxu primárně správce balíčků (package manager) Balíček může být knihovna, datové soubory k programu, program samotný, dokumentace k programu nebo jiná komponenta Balíčky mají mezi sebou závislostní vazby, které určují, co vše je potřeba mít nainstalované, aby fungoval náš program Chce-li uživatel nainstalovat, odstranit či aktualizovat balíčky, použije za tímto účelem správce balíčků. Správce balíčků se podívá do databáze, vyřeší závislostní vazby a vyžádá si potvrzení od uživatele, je-li s vyřešením závislostí spokojen. Následně stáhne pomocí svých nástrojů sám všechny potřebné balíčky a ty nainstaluje, balíčky označené pro odinstalaci ze systému odstraní. ● Redhat , Fedora - RPM Package Manager http://www.rpm.org/ ● Debian - Advanced Packaging Tool – APT http://www.debian.org/ ● ● ● Nové balíčky se instalují pomocí přepínače -i a upgrade se pak provádí buď parametrem -U (upgrade) nebo -F (freshen). Podstatné je, že -U nainstaluje i balíček, který zatím v systému nemáte (takže jej lze používat bez obav místo -i), zatímco -F jej přeskočí. To je praktické například když si stáhnete větší množství balíčků, ale chcete upgradovat jenom ty, co už instalované máte. Rpm umí instalovat i balíčky přímo přes FTP nebo HTTP protokol, takže je nemusíte ani před instalací či upgradem stahovat. Instalace balíčku: – ● Upgrade balíčku z anonymního FTP serveru: – ● ● ● rpm -U ftp://nekde.cz/pub/RPMS/balicek-1.0-2.i386.rpm Upgrade pouze instalovaných balíčků: – ● rpm -i balicek-1.0-2.i386.rpm rpm -F *.rpm Všechny tři zmiňované volby (-i, -U, -F) lze doplnit o volby -v a -h, které způsobí, že rpm bude informovat o tom, co právě provádí a navíc doplní instalaci (či upgrade) o "teploměr" ukazující průběh práce. Celý povel pak může vypadat třeba takto: rpm -Uvh balicek-1.0-2.i386.rpmPříklady Balíčkovací systém distribuce Debian APT ● Balíčky mají koncovku .deb ● používá také distribuce Ubuntu ● apt-get update ... ● apt-get install balicek ... ● apt-get remove balicek ... Odebere ze systému zadaný balíček ● apt-get upgrade ... Aktualizuje všechny balíčky nainstalované v systému ● apt-cache search vyraz ... Vyhledá balíčky související s daným výrazem ● Aktualizuje seznam balíčků Nainstaluje do systému zadaný balíček Instalace ze zdrojového kódu ● Postup – Rozbalit archiv tar , unzip ,... – Zjišťování závislostí, chyb ./configure – Kompilace programu make – Instalace programu make install Správa uživatelů v OS GNU/Linux ● ● Uživatelský účet - pojmem uživatelský účet se označují všechny soubory, zdroje a informace, které se vztahují k danému uživateli Vytváření uživatelského účtu – samotné jádro OS Linux považuje uživatele za pouhé číslo tzv. UID (User ID) – informace o uživateli se udržují ve zvláštní databázi mimo jádro systému – vytváření nového uživatele se přidají informace o něm do uživatelské databáze a vytvoří se pro něj domovský adresář – základní databází uživatelů je soubor /etc/passwd soubor /etc/passwd ● ● ● každému uživateli odpovídá jeden řádek každý uživatel může číst tento soubor řádek je rozdělen na 7 polí, která jsou oddělena dvojtečkou (:) – uživatelské jméno : heslo : ID uživatele : ID pracovní skupiny (GID – Group ID) : skutečné jméno uživatele : domovský adresář : příkazový interpret, který se spustí po přihlášení – ID uživatele: 0 – 500 je vyhrazeno pro systém – ID = 0 uživatel bude mít práva roota v současnosti se používá systém stínových hesel (shadow password) – zakódovaná hesla se ukládají do souboru /etc/shadow, který může číst pouze superuživatel – každému uživateli odpovídá jeden řádek, jednotilivá pole jsou rozdělena dvojtečkou (:) ● uživatelské jméno : heslo : Vytváření uživatelských účtů ● Příkaz useradd / adduser ● parametry příkazu: –d home_directory : název domovského adresáře, defaultně se vytvoří podle uživ. jména –g ID_základní skupiny : ID základní skupiny, lze zadat jako řetězec nebo číslo –G ostatní_skupiny : členství v dalších skupinách –m : do domovského adresáře zkopíruje soubory z /etc/skel –u UID : definice ID uživatele Nastavení uživatelského prostředí ● po vytvoření domovského adresáře uživatele se zkopírují soubory z adresáře /etc/skel ● adresář /etc/skel obsahuje základní konfigurační soubory Smazání uživatelského účtu ● příkaz userdel – parametry příkazu: – – r : vymaže i domovský adresář příklad: – ● ● userdel Petra // smazání pouze uživatele userdel –r Petra // vymazání uživatele i domovského adresáře Modifikace uživatelského účtu ● ● po vytvoření uživatelského účtu můžeme změnit některé parametry (domovský adresář, členství ve skupinách, přihlašovací jméno, …) příkaz usermod – parametry příkazu: ● ● ● ● –d home_directory : název domovského adresáře, defaultně se vytvoří podle uživ. jména –g ID_základní skupiny : ID základní skupiny, lze zadat jako řetězec nebo číslo –G ostatní_skupiny : členství v dalších skupinách –u UID : definice ID uživatele ● příklad: usermod Petra –d petra2 // změní domovský aresář Správa skupin soubor /etc/group ● seznam všech skupin je uložen v souboru /etc/group ● ● ● každé skupině odpovídá jeden řádek název skupiny : x : ID skupiny : členové této skupiny, kteří jsou odděleni čárkou Základní skupina (–g) x Ostatní skupiny (-G) – základní skupina = hlavní skupina daného uživatele – ostatní skupiny = seznam všech skupin, ve kterých se daný uživatel nachází Správa skupin vytvoření/smazání ● Vytvoření skupiny: – příkaz groupadd – parametry příkazu: – – g ID skupiny : ID skupiny příklad: – groupadd studenti groupadd ucitele –g 800 // vytvoří skupinu studenti ● // vytvoří skupinu ucitele s ID 800 Smazání skupiny – příkaz groupdelp – příklad: groupdel studenti Správa uživ. účtů – další příkazy ● Změna hesla uživatele – ● passwd přihlašovací_jméno Změna vlastníka adresáře – příkaz chown – použití: chown vlastník:skupina adresář ● ● příklad: chown baloun:studenti /home/baloun Změna přístupových práv k vytvořenému domovskému adresáři – pomocí příkazu chmod Konfigurace síťového rozhraní ● ifconfig -a .... zobrazí všechna zařízení ● Standardní zařízení: – lo loopback (smyčka) , IP: 127.0.0.1 – speciální zařízení, které je schopno posílat pakety samo sobě – používáno za účelem testování, existuje vždy pouze jedno – slouží pro komunikaci počítače sám se sebou eth0 , eth1 , … – ethernetová síťová karta Konfigurace pomocí příkazu ifconfig – ● – – nebo editací souborů ● /etc/sysconfig/network–scripts/ifcfg–eth0 ● /etc/sysconfig/network–scripts/ifcfg–eth1 Statická a dynamická konfigurace ● Statická konfigurace Ruční (manuální) nastavení síťové konfigurace ● IP adresa ● maska ● brána (default gateway) ● name server Dynamická konfigurace – získává potřebné údaje přes DHCP – efektivnější při správě více počítačů – ● Příklady nastavení karet ● ● informace o nastavení: – ifconfig -a – ip link show – ip addr show – route – ip route show jednoduché přidělení adresy: – ifconfig eth0 192.168.2.3 netmask 255.255.255.0 – ip addr add 192.168.2.3/24 brd + dev eth0 Nastavení směrování - Linux ● ● ● ● ● ● příkaz[root@2202-xx]# route -n ... výpis směrovací tabulky příkaz[root@2202-xx]# route add -net 192.168.1.0/24 gw 172.16.1.11 přidá do směrovací tabulky informaci o cestě do sítě 192.168.1.0 příkaz[root@2202-xx]# route add default gw 172.16.1.1 ... nastaví defaultní cestu soubor /etc/sysconfig/network-scripts/route-xxx ... statické routy pro rozhraní xxx soubor /etc/sysctl.conf ... povolení či zákaz směrování soubor /proc/sys/net/ipv4/ip_forward ... povolení směrování - aktuální stav NAT - Network address translation ● ● funkce síťového routeru pro změnu IP adres packetů procházejících zařízením, kdy se zdrojová nebo cílová IP adresa převádí mezi různými rozsahy. Nejběžnější formou je tzv. maškaráda (maskování), kdy router IP adresy z nějakého rozsahu mění na svoji IP adresu a naopak - tím umožňuje, aby počítače ve vnitřní síti (LAN) vystupovaly v Internetu pod jedinou IP adresou. Router si drží po celou dobu spojení v paměti tabulku překladu adres. Tuto funkci podporují téměř všechna současná síťová zařízení. IP masquerade (maškaráda) ● ● ● ● ● ● IP masquerade je síťová služba OS Linux. Pokud je počítač s OS Linux s běžící službou IP masquerade připojen k Internetu, pak další počítače propojené s touto stanicí lokální sítí či modemem mohou pracovat s Internetem, i když nemají přiděleny jedinečné IP adresy. Tento způsob připojení dovoluje stanicím ukrytým za vstupním bodem ”neviditelně” přistupovat k službám Internetu. Celý systém pak vystupuje jako jediná k Internetu připojená stanice. Vedlejší ale velmi příjemný efekt této metody je (při správném nastavení) získání bezpečného připojení Paketové filtry na Linuxu - Netfilter ● ● ● ● ● je součástí jádra firewall, který kromě základního paketového filtru podporuje také stavové filtrování a NAT iptables slouží k nastavení a správě tabulek (= tables) filtrovacích pravidel v jádře Linuxu Tabulky obsahují řetězce (= chains) pravidel 3 typy tabulek: – filter - zde se definuje filtrování paketů. Implicitní tabulka pokud žádnou neuvedeme, použije se tato. – nat - slouží k překladu adres (NAT) – mangle - slouží ke změně příznaků paketu (např. ke změně TOS, či TTL, nebo k označení paketů) IPTABLES Vzdálené připojení protokol telnet ● ● ● ● ● ● klient/server protokol přenosové architektury TCP Tento protokol dovoluje uživateli klientského terminálu se připojit ke vzdálené stanici či síťového uzlu pomocí TCP/IP Pracuje na portu 23 Po navázání spojení, uživatel může zadávat příkazy, které budou prováděny jako kdyby byly napsány přímo na klávesnici vzdáleného počítače.Telnet není ve srovnání s ostatními protokoly moc propracovaný, stále je však využíván pro vzdálenou administraci a jako nástroj pro odstraňování daných problémů. Není zabezpečený Telnet standardně nešifroval žádná data odesílaná do internetu (včetně hesel), často se také dala komunikace přímo odposlouchávat a dále takto odposlechnutá hesla zneužít; kdokoliv kdo měl přístup do routeru, switche nebo hubu umístěného na síti mezi dvěma zařízeními SSH - Secure Shell ● klient/server protokol v síti TCP/IP, který umožňuje bezpečnou komunikaci mezi dvěma počítači pomocí transparentního šifrování přenášených dat ● Pracuje na portu 22 ● program pro OS Windows - PuTTY ● SSH program je dnes běžně používán při vzdálené práci a pro vzdálenou správu. Většinou se spojuje s SSH démonem (SSH daemon, sshd) pro navázání spojení. SSH démon rozhoduje podle svého nastavení, zda spojení přijme, jakou formu autentizace bude požadovat, případně na kterém portu naslouchá. Implementace SSH klientů i serverů (SSH démon) je dostupná na téměř jakékoli platformě ● SCP (Secure File Copy) – bezpečné (šifrované) přenášení souborů ● program pro OS Windows - WinSCP SSH - Autentizace pomocí klíčů ● Vygenerování dvojice ssh klíčů na stanici, ze které se budu připojovat na vzdálený server – ● ssh-keygen -t dsa Kopie public klíče na vzdálený server – cat ~/.ssh/id_dsa.pub | ssh uzivatel@server 'cat >> ~/.ssh/authorized_keys' FTP protokol ● FTP = File Transfer Protocol ● Určen pro přenos souborů mezi počítači ● ● Zajišťuje přenos souborů mezi rozdílnými operačními systémy Potřebné dva počítače 1. Na jednom počítači server FTP 2. Na druhém počítači ftp klient ● ● ● ● FTP server naslouchá na portu 21. Na tomto portu běží pouze příkazy. Na portu 20 se přenáší pouze data. FTP protokol – připojení Pomocí ftp klienta ● ● ● OS windows – integrovaný řádkový klient přes příkazovou řádku vložte ftp Příkazy: open, get, put, …, help Grafický klient – např. Total Commander, Anonymní připojení servery na Internetu podporují tzv. anonymní připojení user: anonymous password: e-mail adresa umožňuje pouze čtení dat FTP protokol – nevýhody ● Hesla a soubory jsou zasílány jako běžný text (nejsou šifrovaná) Při běžném připojování pomocí protokolu FTP jsou přihlašovací údaje (jméno a heslo) přenášeny v textové podobě a je technicky možné je odchytit Následně mohou být naše data zcizena nebo upravena. Často slyšíme a čteme, jak se hackeři nabourali do serverů a nezřídka jim k tomu stačil tak triviální úkon, jakým je zachycení nešifrovaného FTP hesla. Firewall může blokovat stahování, problémy mohou také nastat při stahování velkých souborů nebo při stahování trvající dlouhou dobu. ●Je možné zachytávat data třetím počítačem, proto se nedoporučuje používat FTP pro důležitá data. ●FTP má poměrně dlouhou dobu odezvy, proto není vhodné stahovat velké množství malých souborů. ● ● Secure FTP - automatické šifrování dat - odstraňuje nevýhodu bezpečnosti protokolu FTP Linux jako server instalace a konfigurace služeb na OS LINUX ● OS Linux můžeme použít jako server: – DHCP – DNS – Web server – Fileserver (NFS, Samba) – Poštovní server – Firewall – Proxy server – Služby pro vzdálenou správu Protokol DHCP ● ● aplikační protokol pro dynamické nastavení parametrů sítě: – IP adresa, maska sítě, výchozí brána, DNS servery Funguje na principu klient-server. – ● DHCP server "propůjčí" tyto parametry sítě síťové stanici na určitou dobu. Po této době musí stanice žádat o adresu znovu. DHCP server u každého klienta eviduje IP adresu a čas, do kdy ji klient smí používat (doba zapůjčení, lease time) DHCP využívá transportního protokolu UDP, klient komunikuje na UDP portu 68, server naslouchá na UDP portu 67 Výhody dynamické konfigurace parametrů sítě prostřednictvím DHCP ● ● ● ● Jednodušší správa a šetření adresního prostoru zaručuje, že se na síti nevyskytnou dvě stejné IP adresy (tzv. konflikt IP adres), což např. u ruční konfigurace parametrů sítě na každé stanici nelze snadno zaručit správce sítě může snadno "přečíslovat" celou síť nebo změnit vlastnosti sítě s minimálním zásahem do práce uživatelů uživatelé si na počítači v souvislosti s připojením k síti nemusí nic nastavovat, pouze musí mít povolené využití služeb DHCP. DHCP server ● DHCP Server slouží pro dynamické přiřazování IP adres a dalších síťových parametrů klientům. ● ● ● DHCP server je aplikace, která běží jako démon na portu 67 nad UDP protokolem. Čte na stanoveném rozhraní broadcasty. DHCP server od ISC – Konfigurace /etc/dhcpd.conf – Při startu je načten tento soubor a možné adresy jsou uloženy v paměti. Požádá-li klient o IP adresu, server rezervuje pro tohoto klienta adresu (pronájem adres). Každý pronájem adresy je jen na určitou dobu, nastavené v konfiguračním souboru. Předtím, než uplyne doba ukončení pronájmu adresy, musí klient znovu žádat o prodloužení (renew ) doby pronájmu adresy. Po vypršrní této lhůty již může přidělit server danou adresu jiné stanici. Konfigurace DHCP - dhcp.conf ● subnet 192.168.1.0 netmask 255.255.255.0 ● range 192.168.1.201 192.168.1.220; ● default-lease-time 86400; ● Max-lease-time 86400; ● option routers 192.168.1.1; ● option broadcast-address 192.168.1.255; ● option subnet-mask 255.255.255.0; ● option domain-name-servers 192.168.1.100; ● option nntp-server 192.168.1.100; # You can also assign specific IP addresses based on the clients' # ethernet MAC address as follows (Host's name is "smallfry": host smallfry { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222;} Protokol - DNS ● DNS = Domain Name system ● Služba, která zajišťuje převod názvů na IP adresy Každá IP-adresa má přiřazeno doménové jméno (může mít přřazeno i několik) ● ● Vazba mezi jménem počítače a IP adresou je definována v DNS databázi <– uložena na DNS server (name server) ● protokol používá porty TCP/53 i UDP/53 Všechny aplikace, které zajišují komunikaci mezi počítači používají k identifikaci komunikujících uzlů IP-adresu. Pro člověka jako uživatele jsou však IP-adresy těžko zapamatovatelné. Proto se používá místo IP-adresy název síťového rozhraní. DNS server (name server) ● ● ● udržuje informace pro překlad jmen počítačů na IP-adresy Name server obhospodařuje nějakou část z prostoru jmen všech počítačů <- tato část se nazývá zóna. Primární server je ten, na němž data vznikají. Pokud je třeba provést v doméně změnu, musí se editovat data na jejím primárním serveru. Každá doména má právě jeden primární server. ● Sekundární server je automatickou kopií primárního. Průběžně si aktualizuje data a slouží jednak jako záloha pro případ výpadku primárního serveru, jednak pro rozkládání záteže u frekventovaných domén. ● Pomocný (caching only) server slouží jako vyrovnávací paměť pro snížení záteže celého systému. Uchovává si odpovědi a poskytuje je při opakování dotazů, dokud nevyprší jejich životnost. DNS server BIND ● nejpoužívanějším DNS server na platformě Unix ● Konfigurace v /etc/named.conf – – – – Definice zón – primární / sekundární nameserver Zóna - doména (většinou) /var/named – zónové soubory = seznam záznamů Doménové záznamy: ● SOA hlavička zóny sériové číslo změny intervaly aktualizací a expirací e-mail na hostmastera autoritativní (primární) nameserver ● A přiřazení IP adresy jménu ● NS odkaz na doménové nameservery ● MX odkaz na doménové mailservery ● CNAME definice aliasu ke kanonickému jménu ● ● PTR pro reverzní záznamy v doménách in-addr.arpa převod z IP adresy na jméno DNS - resolver ● ● ● Pro konfiguraci klienta DNS používáme nástroj resolver Resolver implementuje funkce pro převod doménových jmen na IP adresy a naopak, funkce pro dotazování jmenného serveru apod. Konfigurace: – /etc/resolv.conf - seznam jmenných serverů služby DNS – /etc/hosts - obsahuje statický seznam doménových jmen a IP adres – /etc/nsswitch.conf ● /etc/host.conf Zde je nastaveno, jaký způsob převodu jmen na IP adresy a naopak se použije: jestli pouze statický seznam, služba DNS, obojí a jestliže obojí, pak v jakém pořadí ● ● Nejznámější a nejrozšířenější implementací je OpenSSH pocházející z OpenBSD systému V Linuxu používáme balík OpenSSH obsahující jak SSH server (sshd), tak i klient (ssh) ● ● ● Tato implementace používá asymetrické šifrování RSA pro výměnu komunikačních klíčů a dále symetrické šifry 3DES, Blowfish, AES a Arcfour pro vlastní přenos (RSA je výpočetně náročná šifra, pro vlastní přenos dat jsou vhodnější symetrické šifry). Vše je naprosto transparentní http://pcblog.cz/clanek/117/openssh-popis-konfiguracniho-souboru/ Webový server Webový server - počítač, který je odpovědný za vyřizování požadavků HTTP od klientů ( webový prohlížeč ). Vyřízením požadavků se rozumí odeslání webové stránky. ● Každý webový server je připojen k počítačové síti a přijímá požadavky ve tvaru HTTP. Tyto požadavky vyřizuje a počítači, který požadavek vznesl, vrací odpověď. Odpověď obvykle představuje nějaký HTML dokument. Může to být ale i dokument v jiném formátu - text, obrázek apod. ● ● Součástí odpovědi je i tzv. Stavový kód odpovědi. Ten udává, zda byl požadavek vyřízen v pořádku, či zda došlo k nějakým obtížím. Bežným stavovým kódem, označující stav OK je 200. Dále jsou to řády: • 3xx - problémy spojené s přesměrováním • 4xx - chyby související s vyřízením požadavku (stránka není dostupná, apod.) • 5xx - interní chyby serveru ● Obvykle server nějakým způsobem protokoluje přijímané požadavky. To pomáhá správci webového serveru vytvářet statistiky a podle typu a množství požadavků optimalizovat obsah, způsob uložení i způsob prezentace požadovaných dat. Apache server ● ● ● ● Apache HTTP Server je softwarový webový server s otevřeným kódem pro Linux, BSD, Microsoft Windows a další platformy. V současné době dodává prohlížečům na celém světě většinu internetových stránek. Vývoj Apache začal v roce 1993 v NCSA (National Center for Supercomputing Aplications) na Illinoiské univerzitě. Od dubna 1996 byl Apache nejpopulárnější server na internetu. V květnu 1999 běžel na 57 % všech serverů a v listopadu 2005 jeho používanost dosáhla 69 % (výsledky měření Netcraft). Název vznikl z anglického slovního spojení „A patchy server“ (záplatovaný server). Jako indiánský symbol je ve znaku ptačí pero. Apache – konfigurace – soubor httpd.conf ● ● ● ● ● DocumentRoot / var /www – Velice důležité nastavení, které ukazuje, ve které složce jsou umístěny dokumentypro zobrazení serverem (typicky www stránky - html, php scripty atp.). Listen 192 . 168.16. 2 : 80 – Tímto nastavíme IP a port, kde bude Apache čekat na příchozí připojení Port 80 – Opět nastavení naslouchajícího portu BindAddress server.root.cz – Hostname serveru (dle DNS z´aznamu) ServerAdmin [email protected] – E-mailová adresa administrátora serveru. Zobrazuje se uživateli zejména při chybových hláškách serveru. ● ● Podpora CGI scriptů – <Directory "/var/www/cgi-bin"> NFS - Network File System ● ● ● ● ● ● NFS je obvykle používán ke sdílení souborů mezi různými počítači na síti internetový protokol pro vzdálený přístup k souborům přes počítačovou síť V prostředí Linuxu se jedná asi o nejpoužívanější protokol pro tyto účely V praxi si můžete prostřednictvím NFS klienta připojit disk ze vzdáleného serveru a pracovat s ním jako s lokálním. NFS (Network File System) umožňuje sdílení adresářů na straně serveru. Klient si adresář jednoduše přimountuje a pracuje s ním, jako by byl u něj na počítači Konfigurace NFS serveru ● konfigurační soubor /etc/exports ● na jednotlivých řádcích obsahuje definice sdílených adresářů. Jako první je název adresáře a pak seznam povolených klientů (zde jsou uvedeny názvy server, stanice a IP adresa) s přidanými volitelnými parametry ● /usr ● /home 10.1.2.3(ro) stanice(ro) 10.1.2.3(rw,no_root_squash) stanice(rw) Parametry: * ro (read-only) – pouze pro čtení * rw (read-write) – povoleno čtení i zápis * no_root_squash – mapovat požadavky uživatele root na běžného uživatele (obvykle nobody) Po nastavení konfiguračního souboru je třeba provést příkaz exportfs -a, který provede načtení konfigurace do NFS Kontrolu nastavení NFS lze provést příkazem showmount -e Kontrolu spuštění NFS lze provést příkazem rpcinfo -p Konfigurace klienta ● Klient připojuje adresář ze serveru do svého adresářového stromu stejným způsobem, jako jsou připojovány jednotlivé systémy souborů ● mount -t nfs server:/home /home ● mount -t nfs server:/usr /mnt/usr-from-server ● ● Od této chvíle může klient s daty v adresáři /home a /mnt/usr-from-server pracovat stejně, jako kdyby byly umístěny na lokálním počítači. Připojení po startu: ● ● ● Přidat řádky do souboru /etc/fstab server:/home /home nfs rw 0 0 SAMBA ● ● ● balíček aplikací, které dokáží komunikovat pomocí SMB (server message block) protokolu umožňuje začlenit PC s Linuxem do sítě s operačním systémem Windows Samba umožňuje: * sdílet souborové systémy * sdílet tiskárny připojené jak k serveru, tak ke klientským stanicím * podporuje procházení sdílených zdrojů klientů * autentizaci klientů, kteří se chtějí přihlásit do domény Windows SAMBA - Konfigurace pomocí příkazové řádky ● Noví uživatelé Samby jsou mapováni na již existující systémové uživatele Fedory. Tato vazba je definována v souboru ● /etc/samba/smbusers ● ● Vytvoří nového uživatele: ● ● Smaže uživatele: ● ● smbpasswd -a samba_uzivatel1 smbpasswd -x samba_uzivatel1 Konfigurační soubor: ● etc/samba/smb.conf Proxy server ● ● umožňuje klientům nepřímé připojení k jinému serveru Proxy server funguje jako prostředník mezi klientem a cílovým serverem, překládá klientské požadavky a vůči cílovému serveru vystupuje jako klient. Přijatou odpověď následně odesílá zpět na klienta. Může se jednat jak o specializovaný hardware, tak o software. ● ● ● Aplikační proxy server je server speciálně určený pro určitý protokol resp. aplikaci. Za pomocí něj lze analyzovat obsah komunikace, případně ji pozměňovat (např. odstraňování reklam z http požadavků, blokování webových stránek podle obsahu,…) nebo ukládat požadavky do vyrovnávací paměti (cache), a tak zefektivnit komunikaci. proxy server se často používá pro oddělení intranetu od Internetu a přitom zároveň umožnění uživatelům intranetu používat služeb z Internetu. Proxy server Squid ● ● ● ● ● Proxy server samotný většinou slouží jako relativně bezpečné spojení dvou sítí, které mezi nimi umožňuje jen přesně definovanou komunikaci. Můžete například povolit HTTP/FTP přístup jen vybrané skupině lidí nebo počítačů k vybraným zdrojům. Počítače nemusí být schopné samy komunikovat s druhou sítí. Přínosem proxy serveru je především možnost oddělení sítí a umožnění jen vybrané komunikace. S kešujícím proxy serverem navíc můžete výrazně ušetřit provoz, který mezi sítěmi vzniká při opakovaném požadavku na stejný dokument. Velkým problémem kešování WWW je možná ztráta aktuálnosti poskytovaných dat - v keši je uložena starší verze dokumentu než na původním serveru. Při konfiguraci musíme najít kompromis mezi aktuálností dat a úsporou datového provozu. VSFTP – bezpečný FTP server ● ● ● Vsftpd je FTP server pro unixové systémy distribuovaný pod licencí GNU GPL Zkratka Vsfptd znamená Very Secure FTP Daemon a v současné době je to jeden z nejbezpečnějších a nejstabilnějších FTP serverů. Je používán v distribucích a na serverech Red Hat, SUSE, Debian, OpenBSD Konfigurace v adresáři: /etc/vsftpd – soubor vsftpd.conf ● anonymous_enable=YES/NO ● ascii_upload_enable=YES/NO ● userlist_enable=YES/NO ● ●
Podobné dokumenty
Diplomová práce Systém pro usnadnění správy SW a řízený výběr
po startu počítače a obsahovaly funkce spouštění programů a úklid po skončení programu. Později, ve spolupráci s běžícím programem, dokázaly přepínat mezi více úlohami. Takovým programům se říkalo ...
VíceGNU/Linux
Je možné stáhnout program ze stránek a pak ho nainstalovat, ale proč to dělat složitě, když to jde jednoduše. Snad ve všech běžně používaných distribucích najdete jeden program nazývající se správc...
VíceAnalýza politik nulové tolerance v Litvínově a Duchcově
místech České republiky ve vztahu k hledání odpovědi na problémy v sociální oblasti, otázky bezpečnosti a zajišťování veřejného pořádku. Konkrétní opatření aplikovaná pod pojmem nulová tolerance ni...
VícePoužívání aplikace Acrobat 9 Standard
Použití Adobe® Acrobat® 9 Standard pro Windows® If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished und...
VíceSkript teXmake Hledá se kroužek pro stupně
První se tedy uloží do registru hodnota 18, ta se dále přepíše hodnotou 15 a jako poslední se do registru zapíše hodnota 20, která je ale uzavřena ve skupinových závorkách, a proto bude její působn...
Více