Téma 3: Práce s Linux File Systém II
Téma 3: Práce s Linux File System II
1
Téma 3: Práce s Linux File Systém II
Teoretické znalosti V této kapitole se dozvíte něco o souborových systémech v Linuxu, pochopíte základní rozmístění konfiguračních souborů a adresářovou strukturu. Naučíte se ovládat nejpoužívanější textový konzolový editor vi a dozvíte se něco o základních příkazech pro konfiguraci sítě. Jednoduchá definice ze systému UNIX říká, že všechno v něm je soubor a pokud není něco soubor, tak je to proces. Souborový systém v Linuxu je struktura, ve které jsou uloženy všechny informace počítače. Soubory jsou organizovány uvnitř adresářové hierarchie. Každý adresář obsahuje soubory nebo adresáře. Adresářová struktura v Linuxu Strom souborového systému začíná vrcholem, který se označuje lomítkem (/). Tento adresář, který obsahuje všechny vnořené adresáře a soubory, se často označuje jako kořenový adresář či kořen souborového systému. Při začátcích je vždy dobré seznámit se s obsahem kořenového adresáře. Příkazem cd / do něho vstoupíme a potom příkazem ls vypíšeme obsah. Obvykle najdeme adresáře jako bin, dev, home, lib, tpm atd.
Adresář Obsah /bin Běžné programy, používané systémem, administrátorem i uživateli. /boot Spouštěcí soubory, jádro systému a data zavaděče GRUB. Obsahuje odkazy na veškerá periferní zařízení počítače, která jsou zde reprezentována soubory /dev s různými speciálními vlastnostmi. V tomto adresáře se nacházejí nejdůležitější konfigurační údaje systému, obsahuje všechny /etc údaje, které například ve Windows naleznete v Ovládacích panelech. /home Domovské adresáře normálních uživatelů. /media Poskytuje umístění pro namountovaná zařízení jako CD-ROM, FLASH nebo Floppy Virtuální souborový systém obsahující informace o systému. Podrobnější informace o souborech v tomto adresáři získáte příkazem man proc. Obecné info je v proc.txt /proc /root Domovský adresář uživatele root /sbin Programy používané systémem a administrátorem Dočasný odkládací prostor používaný různými programy, při startu systému se maže. Neukládejte /tmp sem proto žádná svá data. /usr Programy, knihovny, dokumentace a podobně ke všem uživatelským programům. Místo pro ukládání proměnných a dočasných souborů, jako jsou různé záznamy, fronty, soubory /var stahované z Internetu a podobně. /opt Nainstalované programy třetích stran. Podobné jako Program Files ve Windows
Rozdíly souborového systému Linux a Windows Ačkoli se zdá v mnoha věcích podobný, Linux obsahuje spoustu věcí v nichž se liší například:
2
Téma 3: Práce s Linux File Systém II
Ve Windows jsou zařízení reprezentována písmeny uložených zařízení (A: je disketa C: je pevný disk). V Linuxu jsou všechna zařízení umístěna do hierarchické struktury adresářů. Disky jsou většinou v adresář /mnt/ Ve Windows se používají zpětná lomítka. C:\home\uzivatel\ oproti linuxu, kde je to /home/uzivatel/ Každý soubor a adresář v linuxu má k sobě vázané práva a vlastnictví, oproti Windows, který bývá jednouživatelský a práva se musí donastavit.
Meta znaky používané v souborovém systému ~ -- vlnkou je reprezentován domovský adresář v promptu a jeho cesta je uložena v proměnné $HOME . – jedna tečka odkazuje na aktuální adresář .. – dvě tečky znamenají o úroveň výš $PWD – tato proměnná obsahuje aktuální cestu, kde se uživatel nachází $OLDPWD – proměnná obsahující cestu předcházející * -- zástupný znak pro všechno, například *.txt všechny soubory s příponou ? – zástupný znak pouze pro jeden < -- Přímý obsah souboru je vložen jako vstup příkazu, například mail root < ∼/.bashrc odešle mailem obsah souboru bashe > -- Přímý výstup příkazu do souboru, soubor je přepsán >> -- Přímý výstup příkazu do souboru, připisuje obsah na konec
Základní práce s textovým editorem vi Je skoro nemožné pracovat v linuxu bez používání textového editoru. Při práci s grafickým rozhraním můžete používat GEDIT, cože je jednoduchý intuitivní program. Nejvíce linuxových administrátorů používá editor vi nebo emacs, jejichž výhodou je, že není potřeba grafické prostředí můžeme ho tedy používat při vzdáleném připojení ssh apod. My se zaměříme na editor vi. Pro jeho spuštění stačí napsat kdekoli do příkazové řádky vi
a otevře se nový nebo editovaný soubor.
3
Téma 3: Práce s Linux File Systém II
Vi pracuje ve dvou základních režimech – příkazovém režimu a režimu vkládání. Po spuštění se editor vždy nachází v příkazovém režimu. Pomocí příkazů se můžete pohybovat po textu, vyhledávat, nahrazovat, označovat bloky a provádět další editační úkony. Některými příkazy se můžete přepnout do režimu vkládání. Znamená to, že každá klávesa má dva různé významy – v příkazovém režimu vyvolává nějaký příkaz, v režimu vkládání píše odpovídající znak. Základní příkazy pro přepínání jsou i (přepnutí do vkládacího režimu) a klávesa ESC (přepnutí zpět do příkazového režimu). Nápovědu můžeme z příkazového režimu spustit pomocí příkazu :help Pohyb po textu je obvykle možný klasickými kurzorovými klávesami nebo použitím písmen h, l, k, j Základní operace n dd smaže n řádků od aktuální pozice kurzoru, n dw smaže n slov napravo od kurzoru, x smaže znak, na němž se nachází kurzor, :n provede přesun na n řádek, :w uloží soubor na disk, :q ukončí editor, :q! vynutí ukončení v případě, že jste neuložili změny, :wq uloží soubor a ukončí soubor, :w název uloží soubor a ukončí editor, /řetěžec hledá v souboru řetězec a umístí kurzor na první výskyt za stávající pozicí kurzoru, / přesune kurzor na další výskyt dříve hledaného řetězce yy zkopíruje blok textu, n p vloží zkopírovaný blok n-krát, :recover obnoví soubor po neočekávaném přerušení editoru, i slouží ke vkládání,
4
Téma 3: Práce s Linux File Systém II
a slouží k přidání – před přepnutím do režimu vkládání posune kurzor o jeden znak vpravo, o vloží prázdný řádek pod pozici kurzoru, přesune kurzor na tento nový řádek a přepne do režímu vkládání
Základní konfigurace sítě Linux patří mezi nejlepší operační systémy pro počítačové sítě, vždyť většina systému běžících na routerech vychází právě z něj. Celá řada funkcí je přímo integrovaná do jádra systému. My se podíváme pouze jen na základní konfigurace sítě. Nejprve je důležité zjistit jaké rozhraní se v systému nachází a jak jsou nastaveny. To provedeme příkazem ifconfig, který nám vypíše aktivní rozhraní (interface).
Na prvním místě většinou vidíme lo neboli local loop, který je na linuxovém systému vždy spojen s interní adresou 127.0.0.1. Pokud by toto rozhraní neexistovalo, nefungovala by správně celá řada aplikací. Proto je v systému vždy najdete, i když počítač není připojen k síti. Na druhém místě již bývá ethernetové rozhraní eth0 v případě standardní síťové karty, bývá připojeno k lokální síti. Existuje několik typů příkazů, kterými se dá konfigurovat síť. Nejpoužívanějším příkazem je ip, ale můžeme použít i ifconfig nebo route. (ip addr show, ip route show) Dalším mocným příkazem síťových administrátorů je netstat, který dokáže poskytnout mnoho informací. Za zmínku stojí například: netstat -i – poskytne informace o síťových rozhraních netstat -nr – vypíše směrovací tabulku nestat -s – zobrazí statistiky nestat -lut – ten ukazuje všechny porty, na který linuxový stroj poslouchá Samozřejmě zde funguje příkaz ping, který odesílá zkušební pakety stejně jako v prostředí Windows (pozor je zde neomezené odesílání paketů, proces musíte zastavit klávesou CTRL+C), nebo tracerout.
5
Téma 3: Práce s Linux File Systém II Poslední příkaz, který v prostředí windows neexistuje, je tcpdump, jenž sleduje veškerý trafik procházející přes interface (jednoduše se to dá přirovnat ke snifovacímu procesu). Mezi důležité konfigurační síťové soubory v Linuxu patří /etc/hosts, který definuje lokální překlad adres a vždy je zde uveden localhost, a /etc/resolv.conf, který slouží pro manuální definování dns serverů.
6
Téma 3: Práce s Linux File Systém II
Zadání cvičení 1. Práce se soubory 1.1. Vytvoření textového souboru - v terminálovém okně jako uživatel FimUHK vytvořte v domovském adresáři soubor s textem „Toto je muj testovaci prvni soubor v prostredi editoru vi“ na druhý řádek napište „radek cislo 2“ 1.2. Kopírování řádků - první řádek zkopírujte 10krát pod sebou a na poslední řádek zkopírujte druhý řádek 1.3. Uložení souboru - soubor uložte jako text.txt a zavřete editor vi 1.4. Vytvoření složky - vytvořte na ploše složku Dokumenty (v terminálu) 1.5. Přesunutí souboru - soubor text.txt přesuňte do složky Dokumenty a následně ho zkopírujte zpět do domovského adresáře pod názvem text_copy.txt 1.6. Změna práv - přihlaste se jako root a změňte uživatelská práva /home/FimUHK/text_copy.txt tak, aby nemohl uživatel FimUHK editovat ani otevřít soubor a ujistěte se, že to opravdu nejde (editor vi). Změňte také jeho vlastnickou skupinu na OS2. 1.7. Přidání do skupiny - nyní přidejte uživatele FimUHK do skupiny OS2, tak aby měl opět práva k souboru. 1.8. Vymazání složky - jako poslední bod vymažte složku Dokumenty, která je na ploše (samozřejmě v terminálu) 2. Základní konfigurace sítě 2.1. Zjištění IP adresy - zjistěte svoji ip adresu, která je nastavená na Vašem ethernetovém rozhraní (ifconfig) 2.2. Ping - otestujte si příkazem ping Vaši bránu (x.x.x.2) 2.3. Traceroute - podívejte se na celou cestu síťového paketu mezi Vaším strojem a serverem seznam.cz (traceroute) 2.4. DNS zánamy - vyzkoušejte si příkaz dig google.com, jenž Vám ukáže dns informace podobně jako nslookup v prostředí Windows 2.5. Sniffování - přihlaste se jako root, spusťte internetový prohlížeč nebo terminál s příkazem ping a podívejte se jaké všechny pakety přicházejí na interface eth0 (tcpdump) 2.6. Otevřené porty - zjistěte všechny porty, na kterých Vaše Linuxová stanice poslouchá (netstat) 2.7. Změna DNS serveru - přidejte do dns server od Google s ip adresami 8.8.8.8 a 8.8.4.4 (nameserver 8.8.8.8) 2.8. Statická IP - změňte ip adresu na statickou x.x.x.5 s bránou x.x.x.2 a maskou 255.255.255.0. Ujistěte se, zda spojení stále funguje. 2.9. DHCP - na závěr změňte statické nastavení zpět na DHCP 2.10. HOSTS - přidejte si do lokální překladu ip adres Vaši bránu tedy x.x.x.2 se jménem gate a zkuste toto jméno pingnout (upravení souboru /etc/hosts)
7
Téma 3: Práce s Linux File Systém II
Řešení: 1. Práce se soubory 1.1. Vytvoření textového souboru – v terminálovém okně jako uživatel fimuhk vytvořte v domovském adresáři soubor s textem viz zadání 1.1.1.Vim spustíte napsáním v kdekoli v terminálu vi
1.1.2.Objeví se úvodní obrazovka se základními příkazy. Jak jsme zmínili Vim má dva režimy (vkládací, příkazový). Při spuštění se nacházíte v příkazovém, abychom začali psát stačí stisknout klávesu i (v dolní části se zobrazí INSERT)
1.1.3.Nyní můžete začít psát text. Další řádek vytvoříte klávesou enter.
8
Téma 3: Práce s Linux File Systém II 1.2. Kopírování řádků – První řádek zkopírujte 10krát pod sebou a na poslední řádek zkopírujte druhý 1.2.1.Nejprve se pomocí klávesy ESC přepněte zpět do příkazového řádku a kurzorem se postavte na začátek prvního řádku. Nyní stiskněte dvakrát za sebou yy tím se nakopíruje první řádek do paměti.
1.2.2.Poté se přepněte klávesou i zpět do vkládacího režimu a najeďte kurzorem na řádek třetí řádek. Stiskněte ESC a vyťukejte 10p a první řádek se zkopíruje.
1.2.3. Poté postupujte znovu stejným způsobem s druhým řádkem.
9
Téma 3: Práce s Linux File Systém II
1.3. Uložení souboru – Soubor uložte jako text.txt a zavřete vi 1.3.1.Pro uložení musíte být v příkazovém režimu. Začněte psát :wq (write, quit) cesta
1.3.2.Příkazem ls se ujistěte, že se soubor opravdu vytvořil
1.4. Vytvoření složky – vytvořte na ploše složku Dokumenty 1.4.1.Použijte příkaz mkdir
1.5. Přesunutí souboru – soubor text.txt přesuňte do složky Dokumenty a následně ho zkopírujte zpět do původního umístění pod názvem text_copy.txt 1.5.1.Příkazem mv zdroj cíl přesuňte soubor
1.5.2.Příkazem cp ho znovu zkopírujte zpět a ověřte si to ls 10
Téma 3: Práce s Linux File Systém II
1.6. Změna práv – přihlaste se jako root a změňte uživatelská práva /home/FimUHK/text_copy.txt tak, aby nemohl uživatel FimUHK editovat ani otevřít soubor a ujistěte se, že to opravdu nejde (editor vi). Změňte také jeho vlastnickou skupinu na OS2. 1.6.1.Nejprve se podívejte na současné nastavení práv příkazem ls -la a potom příkazem chmod 074 změňte práva, aby vlastník nemohl nic.
1.6.2.Otestujte editorem vi 1.6.3.Vlastnickou skupinu změňte příkazem chown a pak ji můžete ověřit.
1.7. Přidání do skupiny – Nyní přidejte uživatele fimuhk do skupiny OS2, tak aby měl opět práva k souboru 1.7.1.Příkazem usermod editujte uživatelovi skupiny a potom vyzkoušejte vypsat obsah příkazem cat
1.8. Vymazání adresáře – vymažte složku Dokumenty, která je na ploše. 1.8.1.Pro smazání můžete použít příkaz rm V tomto případě se, ale zřejmě objeví chyba, že adresář není prázdný, musíme proto použít rm –rf 2. Základní konfigurace sítě 2.1. Zjištění IP adresy – zjistěte svoji IP adresu, která je nastavená na vašem ethernetovém rozhraní 2.1.1.Existuje několik způsobů. Nejznámější je příkaz ifconfig
11
Téma 3: Práce s Linux File Systém II
2.2. PING – otestujte si příkazem ping Vaši bránu. 2.2.1.IP adresu Vaší brány zjistíte získáte tak, že poslední číslo vaší IP adresy přepíšete na 2. VMWare používá vždy bránu s touto adresou. Pro zastavení stiskněte CTRL+C
2.3. Traceroute – Podívejte se na celou cestu síťového paketu mezi Vámi a serverem seznam.cz. 2.3.1.Zadejte příkaz traceroute seznam.cz a uvidíte všechny zařízení 3. vrstvy, přes které jdou Vaše data.
2.4. DNS záznam – vyzkoušejte si příkaz dig google.com, jenž Vám ukáže dns informace podobně jako nslookup v prostředí Windows.
12
Téma 3: Práce s Linux File Systém II
Jak vidíte z obrázku tento nástroj poskytuje daleko více informací než obyčejný nslookup. Dříve tento příkaz býval v linuxu také, ale od verze CentOS 4 byl vyřazen. 2.5. Sniffování – přihlaste se jako root, spusťte internetový prohlížeč nebo terminál s příkazem ping a podívejte se jaké všechny pakety přicházejí na interface eth0 2.5.1.Zadejte příkaz tcpdump -i eth0 V tuto chvíli nevidíte na obrazovce nic, protože žádný přenos přes síťovou kartu neprobíhá. 2.5.2.Otevřete si druhé okno terminálu a spusťte ping. Po pár odeslaných paketech zastavte ping a přepněte se do druhého okna.
Nyní vidíte vše, co teče vaší síťovou kartou během testování spojení. Tuto funkci MS Windows neumožňuje. 2.6. Otevřené porty - zjistěte všechny porty, na kterých Vaše Linuxová stanice poslouchá 2.6.1.Zadejte příkaz netstat –lut, což vypíše pouze porty, na kterých právě teď poslouchá. Pro zajímavost můžete vyzkoušet i jiné přepínače (více v --help)
13
Téma 3: Práce s Linux File Systém II
V levém sloupci vidíte protokol (tcp nebo udp) a ve sloupci Local Address potom názvy známých portů nebo jejich čísla. V posledním sloupci potom jejich state. 2.7. Změna DNS serveru - přidejte do dns server od Google s ip adresami 8.8.8.8 a 8.8.4.4 2.7.1.Údaje o dns serverech jsou uchovávány v souboru /etc/resolv.conf, a proto se nejprve podívejte příkazem cat, co obsahuje.
Při nastavení služby DHCP (aktuální) se jako nameserver v tomto případě nastaví stejná adresa jako brána. Důvodem je VMware technologie NAT při virtualizaci. 2.7.2.Nyní si otevřete v textovém editoru VIM tento soubor a ručně zadejte pod sebe adresy veřejných DNS serverů společnosti Google. (pamatujte na přepínání mezi režimy ve VIM – klávesa i a ESC)
14
Téma 3: Práce s Linux File Systém II
Správně by zde měl být ještě řádech search Gogole.cz, ale jde to i bez něho. Soubor uložte. Po aktualizaci vyzkoušejte ping na nějakou doménu, abyste se přesvědčili, že je vše OK. 2.8. Statická IP - změňte ip adresu na statickou x.x.x.5 s bránou x.x.x.2 a maskou 255.255.255.0. Ujistěte se, zda spojení stále funguje. 2.8.1.Existuje několik způsobů, jak provést změnu IP adresy. Dříve se používal příkaz ifconfig. V novějších verzích se změna provádí příkazy ip addrr (podobné CISCO). Vy použijete právě tyto. Nejprve je potřeba odstranit stávající konfiguraci příkazem ip addr flush dev eth0 Zkontrolujte stav příkazem ip addr show eth0 a jako poslední krok nastavte adresu příkazem ip addr add x.x.x.5/24 brd + dev eth0
Tímto jsme zařízení eth0 (první síťová karta) přiřadili IP adresu 192.168.79.2 a síťovou masku 255.255.255.0 (v příkladu je zapsána úsporně – číslo znamená počet jedniček v binárním zápisu). Následuje adresa pro broadcasty (pokud ji nenapíšete přímo, ale pomocí +, bude automaticky dopočítána podle IP adresy a síťové masky. Druhý řádek našeho příkazu rozhraní aktivoval. 2.8.2.Další krok v naší konfiguraci je nastavení cest, kterými se mají packety ubírat k cíli. Protože je naše síť jednoduchá, nastavíme pouze implicitní směrování na gateway. Opět nepoužijeme zastaralý příkaz route, nýbrž program ip. Ip route list potom ukazuje roubovací tabulku našeho PC.
15
Téma 3: Práce s Linux File Systém II
2.8.3.Příkazem ping otestujte, zda spojení stále funguje. 2.9. DHCP - na závěr změňte statické nastavení zpět na DHCP 2.9.1.Pro nastavení DHCP použijeme příkaz dhclient. Protože jsme zapomněli klienta zastavit před změnou na statickou ip, musíme ho nyní zastavit příkazem dhclient -r Hned za ním ho opět aktivujeme dhclient a znovu nastavíme link status u eth0 na aktivní (viz obr.).
2.9.2. Na konci můžeme ověřit nastavení výpisem eht0 2.10. HOSTS - přidejte si do lokální překladu ip adres Vaši bránu tedy x.x.x.2 se jménem gate a zkuste toto jméno pinknout. 2.10.1. Lokální překlad adres je uložen v souboru /etc/hosts (podobně jako ve Windows). Můžeme si ho prohlédnout výpis na obrazovku.
V tomto souboru je vždy adresa localhost, protože spousta aplikací je k ni vázána. 2.10.2. Prostřednictvím editoru VIM přidejte adresu brány, tabulátor a jméno.
16
Téma 3: Práce s Linux File Systém II
2.10.3. Na závěr otestujte překlad na adresu pomocí ping
17