Lekce 8 - Linuxový terminál (Bash) - Oprávnění a instalace balíčků
V minulé lekci, Linuxový terminál (Bash) - Práce se soubory, jsme prohlíželi obsah souborů, manipulovali se soubory a složkami a naučili se používat manuál.
Dnešní lekce je věnována uživatelským oprávněním a instalaci balíčků s aplikacemi.
Uživatelé
Linux je víceuživatelský operační systém. To znamená, že ho může používat na jednom počítači několik uživatelů a to dokonce najednou. UNIXové systémy mají kromě klasických uživatelů ještě uživatele root (superuser), který má kompletní přístup k systému. Ostatní uživatelé mají přístup jen do svých adresářů a nemohou například instalovat aplikace.
V Ubuntu je účet root zakázán a například instalace aplikací probíhá pomocí vynucení práv superuživatele na dobu nutnou pro instalaci softwaru nebo zkrátka pro akci, kterou nemůže běžný uživatel provést.
Přihlášení
sudo
Pokud před nějaký příkaz napíšeme sudo
, vyžádá si od
nás systém heslo a daný příkaz bude mít ke svému běhu plná
oprávnění. Zkusme si to, nainstalujeme si nějakou aplikaci přes
konzoli, například aplikaci kolourpaint4. Docílíme toho příkazem
apt-get install
, který si za moment rozebereme:
Vidíme, že bez sudo
nám systém balíček odmítne
nainstalovat:
su
Pokud chceme, můžeme práva superuživatele vynutit na delší dobu a ne
jen na jeden příkaz. Docílíme toho příkazem su
. Jakmile se
budeme chtít odhlásit, napíšeme exit
. Příkaz su
musíme na Ubuntu spustit pomocí sudo
:
Instalace balíčků
Jeden z nejdůležitějších konzolových příkazů je
apt-get
. Jeho název vychází z balíčkovacího systému APT
(Advanced Packaging Tool), který používá Linuxová distribuce Debian a
distribuce od ní odvozené, například právě Ubuntu.
Balíček nainstalujeme pomocí následujícího příkazu:
sudo apt-get install nazev_balicku
To jsme si již vyzkoušeli výše s KolourPaint.
Odinstalace
Aplikaci následně odinstalujeme pomocí parametru remove
nebo
purge
. Remove odstraní aplikaci a ponechá nastavení. Purge
odstraní kompletně vše:
sudo apt-get purge nazev_balicku
Vyhledávání
Balíčky jsou často pojmenované trochu jinak než aplikace. Naštěstí v nich můžeme velmi jednoduše vyhledávat:
dpkg -l *hledany_vyraz*
Výstup:
Podobně můžeme vyhledávat i pomocí:
apt-cache search hledany_vyraz
Výstup:
Informace
Jakmile nějakou zajímavou aplikaci objevíme, můžeme si nechat vypsat podrobnosti pomocí:
apt-cache show nazev_aplikace
Výstup:
Oprávnění
V úvodním dílu k Bashi jsme si ukazovali příkaz ls
a jeho
přepínač -l
, díky kterému ls
vypsal i
přístupová práva k souboru nebo adresáři:
Vysvětlili jsme si, že práva zapisujeme jako sekvenci 10ti znaků. Jejich význam je následující:
- | r | w | x | r | w | x | r | w | x |
1 | 2 | 3 | 4 |
- Pomlčka (
-
) označuje soubor,d
označuje adresář. - První trojice znaků označuje práva pro vlastníka
- Druhá trojice znaků označuje práva pro skupinu
- Poslední trojice označuje práva pro ostatní uživatele
Každá trojice se skládá ze 3 znaků. Na první pozici je buď
r
nebo -
, což označuje zda může uživatel tento
soubor číst či nikoli. w
označuje zápis a x
spouštění.
Skupina
V Linuxu se uživatelé sdružují do skupin a právě prostřední trojice označuje jaká práva má k souboru či adresáři skupina vlastníka.
Adresář
U adresářů se oprávnění zapisuje úplně stejně jako u souborů, jen
řetězec začíná znakem d
. Jednotlivé znaky mají
následující význam:
r
- Umožňuje vypsat obsah adresáře (pokud do ni lze vstoupit).w
- Umožňuje změnu obsahu adresáře (pokud do ni lze vstoupit).x
- Umožní vstoupit do adresáře a zobrazit její obsah.
Práva v oktanové soustavě
Práva se často zapisují také v osmičkové soustavě. Představme si následující oprávnění:
-rwxrw-r--
Oprávnění můžeme převést na dvojkovou soustavu a to tak, že pokud je
daná operace (znak) povolena, zapíšeme 1
, jinak zapíšeme
0
:
111110100
Když každou trojici nyní převedeme na desítkovou soustavu, získáme následující číslo:
764
Určitě byste přišli na to, že plná oprávnění k souboru zapíšeme
jako 777
, protože:
4
- práva pro čtení2
- práva pro zápis1
- práva pro spouštění
Při přidělování práv poté jen sečteme daná čísla.
chmod
Příkaz chmod
(CHange MODe) umožňuje nastavit souboru nebo
adresáři oprávnění a to právě pomocí oktanového zápisu. Před příkaz
musíme vložit sudo
pro vynucení práv:
Je dobré zmínit, že takto plná práva obvykle nenastavujeme.
Kdybychom chtěli vlastníkovi souboru dát plná práva, skupině práva ke čtení a spouštění a zakázat přístup ostatním, celý příkaz by vypadal takto:
sudo chmod 750 soubor.xml
Sticky bit
Standardně může uživatel smazat soubory a adresáře ostatních uživatelů. Pokud bychom tomuto chtěli zabránit, použijeme sticky bit:
chmod +t soubor.xml
Nastavený sticky bit poznáme tak, že na konci standardního výpisu
oprávnění (rwx
) bude znak T
. Případně
t
pokud bude nastavené oprávnění na 777
. Budeme-li
chtít v tomto případě smazat soubor jinému uživateli, systém nám v tom
zamezí a vypíše hlášku Permission denied. A to i přesto,
že máme nastavená práva pro ostatní na rwx
.
chown
Pomocí příkazu chown
(jako CHange OWNer) změníme vlastníka
souboru. Určitě vás nepřekvapí, že k tomu potřebujeme oprávnění:
sudo chown karel soubor.xml
Příkazem chown
lze změnit současně s vlastníkem i
skupinu:
sudo chown uzivatel:skupina soubor.xml
chgrp
Pomocí chgrp
(CHange GRouP) změníme skupinu:
sudo chgrp skupina soubor.xml
To je pro dnešení lekci vše 🙂
V příští lekci, Linuxový terminál (Bash) - Práce s procesy, si vysvětlíme rozdíl mezi procesem, úlohou a úkolem. Následně se podíváme na uspořádání procesů v Linuxu a také se naučíme pracovat s příkazy pro jejich obsluhu.