Systémové programování pro blbečky

1. Soubory

Soubor je pojmenovaná množina binárních dat. Slouží k ukládání dat na disku. Soubourový systém jim přiřazuje diskové bloky a zajisťuje průběžně trvalé uložení dat.

Také slouží ke správě přístupu, mají vlastní bezpečnostní informace dle unixového systému práv. Práva můžeme rozšiřovat také bezpečnostním systémem SELinux, který využívá třídy k správě přístupu.

1.1 Jména souborů

Každý soubor má unikátní jméno ve své složce. Jména souborů můžou být až 255 binárních znaků dlouhá (pokud nedojde k překročení limitu délky cesty), znak '/' je vyhrazený pro cesty a tudíž nejde v názvu použít, podobně jsou také vyhrazené názvy '.' a '..', jelikož se používají k adresování aktuální složky a složky nadřazené. Jména nejsou jinak omezeny, systém rozlišuje mezi velkými a malými písmeny a nevynucuje přípony. Jména začínající tečkou se v uživatelském prostoru používají k vytváření skrytých souborů, ale z pohledu jádra se skryté soubory nerozlišují.

1.2 Obsah souborů

Soubory obsahují libobolná binární data o určité délce. Interpretace těchto dat je zoodpovědnost uživatelských procesů, jádro pouze zařizuje ukládání dat na disk.

1.3 Práva souborů

Práva sobourů se tradičně řídí unixovým systémem bitové sady a identit vlastníka a skupiny.

Rozlišují se 3 druhy přístupových práv:
  1. 'r' – právo číst ze souboru
  2. 'w' – právo zapisovat do souboru
  3. 'x' – právo spouštět soubor
Právo se přiřazuje k:
  1. Vlastníkům soborů ('u')
  2. Skupinám souborů ('g')
  3. Ostatním uživatelům ('o')

Také existují speciální bity které dále rozšiřují nebo omezují práva:

  1. Setuid bit (suid) – při spuštení soubory nastaví efektivní identitu uživatele na vlastníka souboru
  2. Setgid bit (sgid) – podobně jako suid bit nastaví efektivní identitu skupiny na skupinu souboru
  3. Sticky bit ('t') – přesto že je možné tento bit nastavit pro soubory, nemá žádný dopad jelikož je určen pro složky

2. Složky

Složky slouží k organizaci souborů a podsložek. Jejich pravidla pojmenování se neliší od souborů. Sada práv je stejná, ale některá z práv dostávají jiné významy. Největší rozdíl je v obsahu, složky neobsahují binární data, ale obsahují další objekty souborového systému.

2.1 Práva složek

Složky používají stejné identity a práva jako soubory, ale jejich význam je pozměněný.

Význami práv pro složky:
  1. 'r' – právo zobrazit nebo kopírovat soubory ve složce
  2. 'w' – právo přidat nebo odebrat soubory ze složky
  3. 'x' – právo vstoupit do složky (nastavit ji jako pracovní adresář)
Také se mění i význami specialních bitů:
  1. Setuid bit (suid) – nemá žádný vliv na složky
  2. Setgid bit (sgid) – také žádný vliv
  3. Sticky bit ('t') – soubory které jsou ve složce může smazat nebo přemenovat jenom jejich vlastník

3. Cesty

Cesta je způsob vyjádření umíštění souboru nebo složky ve souborovém systému pomocí řetězce znaků. Je složená z názvů objektů rozdělenými lomítky, může mít až 4095 znaků.

4. Odkazy

Odkazy jsou dalším druhem objektu v souborovém systému, používájí se k přesměrování hierarchie.

4.1 Symbolické odkazy

Symbolický odkaz přesměrovává všechny cesty, které vedou přes něj na jiný adresář podle vnitřní cesty. Může odkazovat na soubory i složky, avšak pokud objekt na který odkazuje přestane existovat, stane se rozbitým a nebudu dále fungovat.

4.2 Tvrdé odkazy

Tvrdé odkazy se liší od symbolických tím, že neodkazují na cestu, ale na obsah souboru. Nemůžou odkazovat na složky, ale pokud soubor na který odkazují přestane existovat, zachovají si jeho data.

Zdroje: