8. diel - Linuxový terminál (Bash) - Oprávnenia, inštalácia a procesy
V minulom dieli nášho seriálu o Linuxe sme sa naučili pracovať so súbormi a získavať nápovedu pre rôzne typy príkazov. Dnešný diel je venovaný užívateľským oprávnením, inštaláciu balíčkov s aplikáciami a správe procesov.
Užívatelia
Linux je multiužívatelský operačný systém. To znamená, že ho môže používať na jednom počítači niekoľko užívateľov a to dokonca naraz. UNIXové systémy majú okrem klasických užívateľov ešte užívateľa root (superuser), ktorý má kompletný prístup k systému. Ostatní užívatelia majú prístup len do svojich zložiek a nemôžu napr. Inštalovať aplikácie.
V Ubuntu je účet root zakázaný a napr. Inštalácia aplikácií prebieha pomocou vynútenie práv superužívateľa na dobu nutnú pre inštaláciu softvéru alebo skrátka pre akciu, ktorú nemôže bežný užívateľ vykonať.
Prihlásenie
Sudo
Ak pred nejaký príkaz napíšeme sudo, vyžiada si od nás systém heslo a daný príkaz bude mať k svojmu behu plná oprávnenia. Skúsme si to, nainštalujeme si nejakú aplikáciu cez konzolu, napr. Aplikáciu kolourpaint4. Docielime toho príkazom apt-get install, ktorý si za moment rozoberieme.
Vidíme, že bez sudo nám systém balíček odmietne nainštalovať.
Su ==
Ak chceme, môžeme práva superužívateľa vynútiť na dlhšiu dobu a nie len na jeden príkaz. Docielime toho príkazom su. Akonáhle sa budeme chcieť odhlásiť, napíšeme exit. Príkaz su musíme na Ubuntu spustiť pomocou sudo.
Inštalácia balíčkov
Jeden z najdôležitejších konzolových príkazov je apt-get. Jeho názov vychádza z balíčkovacieho systému APT (Advanced Packaging Tool), ktorý používa Linuxová distribúcia Debian a distribúcie od nej odvodené (napr. Práve Ubuntu).
Balíček nainštalujeme pomocou nasledujúceho príkazu:
sudo apt-get install nazev_balicku
To sme si už vyskúšali vyššie s KolourPaint.
Odinštalácie
Aplikáciu následne odinštalujeme pomocou parametra remove alebo purge. Remove odstráni aplikáciu a ponechá nastavenie. Purge odstráni kompletne všetko.
sudo apt-get purge nazev_balicku
Vyhľadávanie
Balíčky sú často pomenované trochu inak ako aplikácie. Našťastie v nich môžeme veľmi jednoducho vyhľadávať:
dpkg -l *hledany_vyraz*
Podobne môžeme vyhľadávať aj pomocou:
apt-cache search hledany_vyraz
Informácie
Akonáhle nejakú zaujímavú aplikáciu objavíme, môžeme si nechať vypísať podrobnosti pomocou:
apt-cache show nazev_aplikace
Oprávnenie
V úvodnom dielu k Bashi sme si ukazovali príkaz ls a jeho prepínač -l, vďaka ktorému ls vypísal aj prístupové práva k súboru alebo priečinku:
Vysvetlili sme si, že práva zapisujeme ako sekvenciu 10tich znakov. Ich význam je nasledovný:
- | r | w | x | r | w | x | r | w | x |
1 | 2 | 3 | 4 |
- Prvá trojica znakov označuje práva pre vlastníka
- Druhá trojica znakov označuje práva pre skupinu
- Posledná trojica označuje práva pre ostatných užívateľov
Každá trojica sa skladá z 3 znakov. Na prvej pozícii je buď r alebo -, čo označuje či môže užívateľ tento súbor čítať alebo nie. w označuje zápis ax spúšťanie.
Skupina
V Linuxe sa užívatelia združujú do skupín a práve prostrednej trojice označuje aké práva má k súboru / priečinku skupina vlastníka.
Zložka
U zložiek sa oprávnenia zapisuje úplne rovnako ako pri súboroch, len reťazec začína znakom d. Jednotlivé znaky majú nasledujúci význam:
- r - Umožňuje vypísať obsah priečinka (ak do nej môže vstúpiť).
- w - Umožňuje zmenu obsahu zložky (ak do nej môže vstúpiť).
- x - Umožní vstúpiť do priečinka a zobraziť jej obsah.
Práva v oktánové sústave
Práva sa často zapisujú tiež v osmičkovej sústave. Predstavme si nasledujúce povolenia:
-rwxrw-r--
Oprávnenie môžeme previesť na dvojkovú sústavu a to tak, že ak je daná operácia (znak) povolená, zapíšeme 1, inak zapíšeme 0:
111110100
Keď každú trojicu teraz prevedieme na desiatkovú sústavu, získame nasledovné číslo:
764
Určite by ste prišli na to, že plná oprávnenie k súboru zapíšeme ako 777.
Chmod
Príkaz chmod (Change mode) umožňuje nastaviť súboru alebo priečinku oprávnenia a to práve pomocou oktánového zápisu. Pred príkaz musíme vložiť sudo pre vynútenie práv.
Je dobré spomenúť, že takto plné práva zvyčajne nenastavuje.
Chown
Pomocou príkazu chown (ako change owner) zmeníme vlastníka súboru. Určite vás neprekvapí, že k tomu potrebujeme oprávnenie.
Príklad:
sudo chown karel soubor.xml
Chgrp
Pomocou chgrp (Change Group) zmeníme skupinu.
sudo chgrp skupina soubor.xml
Procesy
Linux je rovnako ako Windows viacúlohový operačný systém (anglicky multitasking). Aplikácia beží ako procesy, o ktorej sa procesor strieda alebo ktoré bežia na rôznych jadrách. V procesoch beží v skutočnosti ešte vlákna, ale tými sa zaoberať nebudeme. Zameriame sa na procesy a naučíme sa ich spravovať.
Ps **
Všetky bežiace procesy užívateľa vypíšeme pomocou príkazu ps (ako Process Status).
Vidíme tu bežiaci terminál a samotný ps. Všimnite si, že každý proces má svoje ID (PDI), pomocou ktorého ho môžeme napr. Ukončiť. ID je nutné z dôvodu, že jedna aplikácia môže bežať niekoľkokrát a systém by teda len podľa jej názvu nerozpoznal ktorý proces má ukončiť.
Jobs
Okrem ps môžeme k výpisu procesov využiť aj shell BUILTIN jobs. Pretože je súčasťou shellu, použijeme ho v prípade, keď nás zaujímajú procesy, ktoré sme cez shell spustili.
jobs
Po spustení nevidíme žiadne procesy, keďže nemáme žiadny spustený. Nápravy to a spustite si napr. Gedit. Akonáhle vyskočí okno a my sa vrátime späť do terminálu, zistíme, že je zaneprázdnený.
Proces môžeme pozastaviť tak, že sa prepneme do terminálu a stlačíme CTRL + Z.
Bg **
Pomocou príkazu bg spustíme pozastavený proces na pozadí (ako background).
Vidíme, že teraz reaguje gedit a zároveň je prístupný aj terminál. Proces môžeme na pozadí spustiť aj hneď na prvýkrát a to tak, že mu dáme ako parameter ampersand (&):
Fg **
Pomocou príkazu fg môžeme proces preniesť do popredia (ako Foreground). Za príkaz fg môžeme zadať jeho ID po percente (ID získame z príkazu jobs) alebo ho spustiť bez parametrov, kedy prenesie do popredia poslednej pozastavený proces alebo posledný proces v pozadí.
Kill
Posledný príkaz, ktorý si v súvislosti s procesmi zmienime, je príkaz kill. Ako asi tušíte, slúži na ukončenie daného procesu. Proces môžeme označiť buď pomocou jeho PID (zistíme príkazom ps) alebo pomocou percentá a čísla, ktoré zistíme pomocou príkazu jobs.
Nabudúce sa pozrieme na štandardný vstup / výstup a vysvetlíme si čo je to expanzia a ako ju využívať.