Skip to content
On this page

Filesystem

Pokud jste si linux nainstalovali, nejspíš už jste si všimli, že vaše disky fungují jinak než na windows, nemají písmenka a když instalujete programy, počítač se vás neptá kam program chcete uložit. Na linuxu je jeden filesystem začínající kořenovou složkou /, pod ní se nachází strom, ve kterém jsou všechny soubory, všechny složky i zařízení, do tohoto filesystemu jsou pak v jednotlivých složkách připojeny data z disků. Pro lidi zvyklé z windowsu, místo toho aby se po připojení flash disku zobrazil nový disk s jiným písmenem, obsah připojeného disku bude ve dříve uživatelem / systémem vybrané složce. (většinou /mnt, /mnt/<další podsložka>)

Organizace kořenové složky

Filesystém linuxu je velmi organizovaný, každá složka pod kořenovou složkou má nějáký význam, zde je jejich list.

LokacePopis
/binNacházejí se v něm binární spustitelné soubory přístupné všemi uživateli (nyní je symlinkem na /usr/bin)
/bootObsahuje soubory bootloaderu a komprimovaný obraz jádra (- vmlinuz.img)
/devObsahuje soubory zařízení (devices) a odhaluje je uživateli
/etcObsahuje konfigurační soubory systému (nesmějí být spustitelné)
/libObsahuje sdílené systémové knihovny a linker (nyní symlinkem na /usr/lib)
/mntNa tento adresář se obvykle připojují oddělitelná média jakéhokoliv typu
/sbinNacházejí se v něm systémové binární soubory – nutné pro správu systému (nyní symlinkem na /usr/bin)
/srvObsahuje data pro servisy poskytované počítačem/serverem
/usrAdresář pouze pro čtení, přístupný všem uživatelům (v dávných dobách obsahoval )
/varObsahuje soubory kterým se za běhu systému bude měnit velikost (mailbox, logy, ), pro zachování
/procObsahuje složku s informacemi pro každý běžící proces
/sysAdresář odhalující hardware a jeho nastavení
/runObsahuje systémové informace o běhu
/tmpDočasné soubory uložené v paměti
/home/[user]Obsahuje domovské adresáře uživatelů na systému (v nich jim náležící soubory, konfigurace...) - mít /home na oddělené cestě usnadňuje zálohování (případně na jiném oddílu disku - soubory se mohou zachovat i po přeinstalaci systému)
/rootPodobné jako /home, ale pro root účet
/optDoslova optional - adresář pro volitelné soubory

Oprávnění

Narozdíl od windowsu, kde se s oprávněními souborů nesetkáváme často, pouze když stahujeme aplikace a vyskočí na nás hláška spustit jako administrátor?, na linuxu se s oprávněními setkáme mnohem častěji, dále si vysvětlíme jak oprávnění na linuxu fungují.

Uživatelé

Abyste se do systému mohli přihlásit, musíte mít vytvořený účet. Při zapnutí počítače na vás nejspíše vyskočí přihlašovací obrazovka, kam musíte zadat své heslo, aby se do počítače nedostal nikdo jiný než vy. Mimo jmého a heslo však každý uživatel má uživatelské id (UID; většinou 1000) a skupiny (jednu primární), domácí složku (kde se nacházíte, když spustíte terminálový emulátor, cesta kam směřuje ~) a shell (o tom později)

Root

V kapitole instalace softwaru jsme se bavili o spouštení příkazu jako administrátor, na linuxu se nepoužívá uživatel pojmenovaný Administrátor, ale používá se tzv. root. Root uživatel je uživatel s id 0 a skupinou root (také id 0).

Jelikož není chytré spouštět každý příkaz s administrátorskými oprávněními (security by obscurity) většinou se používá vlastní uživatel, který má přístup k příkazu sudo (super user do). Tento příkaz se zeptá na vaše heslo a poté příkaz spusí jako root.
Samozřejmě každý uživatel nemá oprávnění spouštět příkaz sudo (systémoví administrátoři jsou uživatelé, kteří k tomuto příkazu mají přístup), sudo můžou spouštět uživatelé ve skupině sudoers, nebo speciálně nastavení uživatelé / skupiny.

Skupiny

Jak bylo řečeno dříve, každý uživatel má nějáké skupiny (těch může mít víc) a ty často rozhodují co smí dělat. (např. se skupinou sudoers uživatel může spouštět příkaz sudo) Stejně jako u uživatelů, skupina má také své id. (GID)

Oprávnění souborů

Každý soubor si skladuje 2 informace, jaký uživatel ho vlastní a jaká skupina ho vlastní. Dále si ukládá módy v jakých uživatel může k souboru přistupovat r - read, w - write, x - execute. Tyto módy jsou uložené pro majitele souboru, skupinu vlastnící soubor a pro všechny ostatní. (v tomto pořadí) Soubory mohou být nastaveny tak, že k nim má přístup pouze vlastnící uživatel rwx------, nebo třeba vlastnící uživatel a vlastnící skupina smí soubor pouze číst rwx-r-----.

Pokud použijeme příkaz ls s argumentem -l, oprávnění budou hned v prvním sloupci ve stejném formátu jako výše (rwxrwxrwx, kde pokud uživatel, skupina nebo ostatní nemají daný mód oprávnění, je písmeno nahrazené za -), pokud přeskočíme druhý sloupec, kde je velikost souboru, ve třetím sloupci můžeme vidět uživatele, který soubor vlastní a ve čtvrtém sloupci uvidíme vlastnící skupinu.

Změna oprávnění

Nyní se naučíme další příkazy, které můžeme využít na změnu vlastníků a módů oprávnění souborů.

bash
# Pomocí příkazu chown můžeme změnit vlastníka souboru, první argument je uživatel a skupina, kteří po spuštění příkazu
# budou vlastníky a druhým argumentem je soubor, pro který chceme oprávnění změnit
chown root:root flag.txt

# Příkaz chmod mění módy oprávnění souboru. Stejně jako u chown, nejdříve příkazu předáme informace jaké mají být nové
# oprávnění souboru a poté vybereme soubor.
# Zápis je však narozdíl od výpisu v ls jiný, můžeme buď použít číselný zápis (3 čísla - vzácně 4, 0-7, sečtené módy
# r = 4; w = 2; x = 1; rwx = 7; První číslo označuje mód uživatele, druhé skupiny, třetí ostatních) nebo zápis bližší
# tomu co známe z ls (u=rwx,g=rx,o=r - vybereme komu měníme mód a nastavíme ho na rwx hodnotu za =, také místo = můžeme
# použít +, abychom mód přidali nebo - abychom mód odebrali)
chmod 770 flag.txt
chmod +x flag.txt
chmod o-rwx flag.txt
chmod g= flag.txt
chmod u=rwx,o= flag.txt