První kroky v terminálu

Terminál, konzole, příkazový řádek

Vítej v terminálu, hackermane!

Nyní začínám kombinovat oslovení v množném i jednotném čísle, nelekej se, jsme kolegové!

V tomto fešném prostředí prožiješ následující roky studia kybernetické bezpečnosti. Vím, vypadá to děsivě, ale neboj se, ovládání terminálu Tě bude vskutku bavit. V nadpisu zmiňuji tři různé pojmy, v kontextu dnešní doby všechny z nich znamenají takřka totéž. Úplně nejpřesnějším označením „toho“, kam budeš psát své příkazy, je anglické slovíčko „shell“. Jde o textové (tudíž negrafické) rozhraní, které Ti dává prostor ovládat právě nainstalovaný a běžící Linux.

Aby Ti byly významy pojmů z nadpisu naprosto jasné, uvedu, že terminálem se v začátcích doby počítačové označovaly zařízení sestávající z prostého monitoru a klávesnice, prostřednictvím kterých se lidé, obsluhující mnohdy velké sálové počítače, připojovali právě k těmto počítačům. Předávání dat napříč terminálem a počítačem zajišťovala sériová linka.

Konzole je pak jakýsi vzhled terminálu, zahrnující také způsob předávání dat (tedy textově). Pojem příkazový řádek je Ti jistě známý z prostředí operačního systému Microsoft Windows a je prakticky synonymem pro konzoli. Dále se můžeš setkat s pojmem prompt, který, jak již název napovídá, čeká na zadání nějakého uživatelského vstupu, aby jej mohl počítač zpracovat.

Z předchozího odstavce proto vyplývá důležitá podstata celého našeho následujícího snažení – prostřednictvím terminálu zasíláme textové příkazy, kterými ovládáme počítač a říkáme mu, co má vykonat.

Začíná přituhovat – jdeme na věc!

Orientace v terminálu a první příkaz pwd

Při prvním spuštění terminálu na tebe dost pravděpodobně „vybafne“ spousta informací. Podstatné pro nás v tuto chvíli bude samotné zadávání příkazů. Nazývejme je odteď také commandy (command v jednotném čísle je synonymem pro příkaz). To se zpravidla odehrává hned za vypsaným promptem, který čeká na náš vstup. Vypadá asi nějak takhle

franta@pizzeria:~$

Obecně jej můžeme zapsat následovně

uzivatel@pocitac:cesta$

Tento prompt vypisuje Linux vždy automaticky. Za dolarem na konci následuje mezera a za ní bliká kurzor či podtržítko, které čeká na zadání nějakého commandu (nebo-li příkazu, jak jsme si ujasnili výše).

V každém okamžiku, kdy máme otevřený terminál, se nacházíme v nějaké složce. Ta je zvýrazněna oranžovou barvou. Vypisuje se zde buďto absolutní cesta na disku nebo relativní cesta vypisující se z Tvého domovského adresáře.

Vraťme se k první ukázce. Vidíme, že aktuálně spuštěný terminál má přihlášený uživatel franta, jeho počítač se jmenuje a má hostname pizzeria (takto jej vidí, vedle IP a MAC adresy, ostatní zařízení v rámci sítě) a nachází se ve složce ~. Vlnovka v této situace značí, že se s terminálem nachází v jeho domovském adresáři. Pokud se uživatel jmenuje franta, pak se nacházíme aktuálně ve složce /home/franta. Ve složce /home má svou podsložku drtivá většina běžných uživatelů Linuxu (o tom ale později).

Pokud bychom si chtěli ověřit, že vlnovka značí opravdu adresář /home/franta, napíšeme za prompt (tedy za dolar) náš úplně první command, a to pwd.

franta@pizzeria:~$ pwd

Stiskneme klávesu Enter pro zadání (odeslání počítači) příkazu. V terminálu se nám vypíše následující cesta

/home/franta

Nezapomeňme, že příkaz pwd můžeme použít kdykoliv a kdekoliv v rámci terminálu. Vždy nám vypíše, v jaké složce v rámci Linuxu se aktuálně s naším promptem nacházíme.

Pohyb v adresářích commandem cd

Nyní již víš, jak terminál operačního systému Linuxu vypadá a jak se v jeho prvotní podobě zhruba orientovat. Vysvětlili jsme si, jak poznáš, za jakého uživatele jsi přihlášený, jak se jmenuje Tvůj počítač, co je to příkaz/command a v jakém adresáři se aktuálně nacházíš.

Právě na složky a pohyb v nich se nyní zaměříme. Při spuštění terminálu se vždy ve výchozím nastavení budeš vyskytovat ve své domovské složce. Co když ale budeme potřebovat pracovat i se soubory mimo tuto složku, třeba v podadresáři anebo dokonce v nadřazeném adresáři?

Přichází na scénu command cd. Je to zkratka dvou anglických slovíček „change directory“, tedy „změnit adresář“. Zkusme se tedy z adresáře /home/franta přesunout v rámci terminálu do nadřazeného adresáře /home. V podstatě máme dvě možnosti, a to pomocí uvedení absolutní či relativní cesty vůči naší aktuální a adresáře, do něhož se chceme přesunout.

Víme-li, pomocí commandu pwd že se nacházíme ve složce /home/franta a nadřazená složka je proto logicky pouze /home, použijeme následující command využívající absolutní cestu. Většina příkazů přijímá argumenty s nimiž má pracovat. Jedním z argumentů je v tomto případě „/home

franta@pizzeria:~$ cd /home

Hotovo. Přesunuli jsme se do složky o úroveň výše. Můžeme si všimnout, že se nám změnil prompt a namísto vlnovky (značící domovský adresář /home/franta) zde vidíme absolutní cestu

franta@pizzeria:/home$

Druhou zmiňovanou cestou je využití relativní cesty. Netřeba se ničeho bát, pouze se naučíme novou zkratku, jak „vyskočit“ o úroveň výše. Vraťme se tedy z aktuálního adresáře home opět do našeho domovského adresáře. Nyní již víš, jak na to a zadáš následující příkaz

franta@pizzeria:/home$ cd franta

Zadali jsme relativní cestu „franta“, protože nyní již víme, že složka s názvem „franta“ se ve skutečnosti nachází ve složce „home“, v níž jsme se předtím nacházeli. Rázem se ocitneme opět v naší domovské složce a namísto absolutní cesty, kde se právě v terminálu nacházíme, se vypíše vlnovka značící, že jsme v našem domovském adresáři

franta@pizzeria:~$

Pojďme se nyní přesunout do nadřazené složky bez toho, aniž bychom věděli, že její absolutní cesta je /home. Provedeme to pomocí zadání ../ – v podstatě se nejedná o složku, pouze o skok o úroveň výše do neznáma

franta@pizzeria:/home$ cd ../

Po stisknutí klávesy Enter se rázem ocitneme v adresáři /home, který je nadřazený adresáři /home/franta a prompt se nám změní na

franta@pizzeria:/home$

Výpis souborů v aktuálním adresáři příkazem ls

Aktuálně se nacházíme v, pro nás neznámém, adresáři /home, který prakticky neznáme a nevíme, jaké další složky obsahuje. Tento adresář obsahuje domovské složky pro všechny uživatele v rámci systému Linux, kteří ji vyžadují (v rámci Linuxu existují i jiní uživatelé, kteří složku nepotřebují, ale o tom později). Předpokládejme, že máme v rámci našeho Linuxového počítače více uživatelů, tedy složka /home obsahuje hned několik podsložek.

Jak to zjistíme? Pomocí commandu ls, který je zkratkou pro anglické slovo „list“. Příkaz ls proto vypisuje obsah adresáře, v němž se aktuálně nacházíme. Nyní Ti dává jistě větší smysl, proč je orientace v rámci složek v terminálu tak důležitá.

Vypišme si obsah složky /home, ve které se aktuálně nacházíme. Provedeme to jednoduše

franta@pizzeria:/home$ ls

Stiskněme Enter. Vypíší se nám složky pojmenované dle dalších uživatelů tohoto počítače, například to může vypadat takto (včetně zadaného commandu a promptu)

franta@pizzeria:/home$ ls
david franta  pepa  marek
franta@pizzeria:/home$

Stejně jako u příkazu pwd se nám vypisuje vrácený obsah do terminálu i u ls. Skvěle. Stejně je to u všech dalších příkazů, u nichž očekáváme nějaký výstup. Vše se vypisuje do terminálu. K vypisování výstupů se vrátíme později, nyní si vyzkoušejme jednoduchou úlohu.

Úlohy - princip vlajek v rámci soutěží CTF

V rámci studia kybernetické bezpečnosti budeš velmi často zpracovávat úlohy, jejichž cílem je získat vlajku. Standardizovaným formátem vlajky myslím

flag{obsahNalezeneVlajky}

Kde obsahNalezeneVlajky zpravidla obsahuje nějaký zajímavý text či náhodný řetězec. Důležitý je pro nás v tuto chvíli způsob zápisu této takzvané vlajky. Vždy se jedná o nějaký řetězec uvnitř složených závorek, jimž předchází zpravidla slovo „flag“ (česky „vlajka“) či jiné předem definované. Soubor úloh, kde sbíráš tzv. vlajky, nazýváme CTF soutěží. CTF znamená „Capture The Flag“, v překladu „Zmocni se vlajky“. Jednotlivá úloha se nazývá scénářem.

Aktuálně jsme se naučili, jak se pohybovat v adresářové struktuře a vypsat si obsah složky. Pojďme na naši první CTF úlohu. Co nevíš, se v průběhu úlohy naučíš.

results matching ""

    No results matching ""