Charakteristika operačního systému GNU/Linux



Podobné dokumenty
Charakteristika operačního systému GNU/Linux

Správa procesů - manipulace s procesy, signály

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

UŽIVATEL, SKUPINA, PROCES

Linux-příkazový řádek

Úvod do Linuxu SŠSI Tábor 1

Tomáš Borland Valenta

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Operační systém GNU/Linux

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Nastroje na zpracovani textu:

Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Základní příkazy UNIXu (Linuxu)

Systém souborů (file system, FS)

Identita uživatelů, přístupová práva. Linux

1. Charakteristika operačního systému GNU/Linux

Unix je víceuživatelský a víceúlohový OS

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

LINUX uživatelské účty (1)

Nová cesta ip. Stará cesta ifconfig, route. Network address translation NAT

Úvod do Operačních Systémů

Úvod, jednoduché příkazy

PSK3-11. Instalace software a nastavení sítě. Instalace software

Operační systémy 1. Přednáška číslo Souborové systémy

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

Architektura systému GNU/Linux. Bohdan Milar

Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Základní příkazy pro práci se soubory

PROGRAMOVÁNÍ V SHELLU

Stručná instalační příručka SUSE Linux Enterprise Server 11

Úvod do Linuxu. SŠSI Tábor 1

Další nástroje pro testování

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

File Transfer Protocol (FTP)

Základní příkazy OS UNIX

FILTRY V GNU/LINUXU ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Část první: Tipy a triky pro práci se systémem 17

IT ESS II. 1. Operating Systém Fundamentals

Nainstaloval jsem a jak dál? Michal Turek

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Administrace OS Unix. Úvodní informace Principy administrace Uživatelé

Architektura systému. Tomáš Borland Valenta

Identita uživatele (procesu)

Souborové systémy a logická struktura dat (principy, porovnání, příklady).

ZOS CV1 Základy operačních systémů

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

ČÁST 1 ÚVOD. Instalace operačního systému 21 Aktualizace operačního systému 57 Příkazový řádek 77 Windows Script Host 103 ČÁST 2 ŘEŠENÍ

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

1 ÚVOD DO LINUXU 3 2 MANIUPLACE S DATY A TEXTEM 4 3 EDITORY, ARCHIVACE A PŘESMĚROVÁNÍ 5 4 UŽIVATELSKÉ ÚČTY A OPRÁVNĚNÍ + TEST 6 5 PROCESY A SERVISY 7

SSL Secure Sockets Layer

Počítačové sítě Systém pro přenos souborů protokol FTP

Souborový systém (File System FS) Souborové systémy. Souborová fragmentace. Disková fragmentace. Organizace dat na pevném disku

Úvod do informačních služeb Internetu

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Úvod Kapitola 1 Začínáme... 21

Úvod do Operačních Systémů

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

PSK3-9. Základy skriptování. Hlavička

Instalační a uživatelská příručka aplikace PSImulator2 Obsah

2.2 Acronis True Image 19

Operační systémy. Cvičení 1: Seznámení s prostředím

TC-502L TC-60xL. Tenký klient

Popis programu EnicomD

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIV Windows server 2003 (seznámení s nasazením a použitím)

CAD pro. techniku prostředí (TZB) Počítačové sítě

Audit bezpečnosti počítačové sítě. Předmět: Správa počítačových sítí Jiří Kalenský

2. přednáška pro začátečníky

1 Uživatelská dokumentace

Systém souborů (File System)

Téma 4: Práce s CentOS. Instalace softwarových balíčků pomocí yum

Zprovoznění nových userů pro pure-ftpd server (s privátními adresáři)

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Maturitní téma: Operační MS-DOS

ÚČETNICTVÍ ORGANIZAČNÍCH KANCELÁŘÍ KOMPLEXNÍ SYSTÉM PRO VEDENÍ ÚČETNICTVÍ

Uživatelská příručka

Souborové systémy Mgr. Josef Horálek

Linux na serveru. seminář Arcibiskupského gymnázia v Praze a gymnázia Boženy Němcové v Hradci Králové

Paralelní výpočty na clusteru KMD

Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde. find adresář -name "maska_souboru" [-print] [-exec proces {} \;]

Střední odborná škola a Střední odborné učiliště, Hořovice

Computer Press Brno 2003

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Základy IOS, Přepínače: Spanning Tree

Použití programu WinProxy

Identita uživatele. predn_04.odt :47:03 1

Skripty - úvod. Linux - skripty 2

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

Rozdělení operačních systémů

Instalace a první spuštění Programu Job Abacus Pro

Audit bezpečnosti počítačové sítě

Konfigurace Windows 7

Jak funguje GNU/Linux

Bc. Hynek Chmela - 1. přednáška o systému Debian Linux

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 GNU Linux GPL - General Public License ( všeobecná veřejná licence ) 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 Single user mode 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ě Full multiuser mode runlevel 4 - není použit unused runlevel 5 - víceuživatelský režim s podporou sítě a XFree X11 runlevel 6 - restart systému 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ů - plain file (obyčejný soubor) d directory (adresář, seznam jmen souborů) l 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ÁŘ] změní aktuální 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ů

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í r (Read) 4 Zápis w (Write) 2 Spuštění x (execute) 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í) Příklady: chmod u+w jméno_soubor přídá právo zápisu pro vlastníka souboru 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 chmod o+x jméno_soubor 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í Kategorie Právo s uživatel setuid s skupina setgid t ostatni sticky setuid - Program s nastaveným setuid bitem má při běhu práva svého vlastníka. Používá se hlavně v případech, kdy chceme dočasně zvýšit poskytnutá práva setgid - podobně jako setuid - mění skupinu 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 - sh C-shell - csh Korn shell - ksh vychází z Bourne shellu Bourn again shell - 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á Obsahuje Příklad HOME Domovský adresář /home/novacek TERM Typ terminálu xterm,vt100,console SHELL Cesta k příkazovému procesoru /bin/bash USER Jméno účtu novacek PATH 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 znaků začínající tečkou? právě jeden libovolný znak [ ] 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 - výpis všech spuštěných programů ps aux - 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 - ukončí proces bez varování spuštění procesu na pozadí # <příkaz> & bg přesun procesu na pozadí fg přesun procesu na popředí 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