Prístupové práva

Prístupové práva sú ďalšou dôležitou časťou mnoho-užívateľského aspektu súborového systému. Pomocou nich, môžete určiť, kto môže čítať, písať a spúšťať súbory.

Informácia o prístupových práva je uložená ako štyri osmičkové čísla, každé z nich špecifikujúce odlišnú množinu prístupových práv. Existujú prístupové práva vlastníka, skupiny, a prístupové práva zvyšku sveta. Štvrté osmičkové číslo špecifikuje informácie ako je nastav užívateľovo ID, nastav skupinové ID a “sticky - lepkavý” bit. Osmičkové hodnoty priradené jednotlivým módom prístupových práv sú (označované sú aj pomocou písmen, ktoré sú zobrazované programami ako napríklad)ls a môžu použité pri chmod):

Tabuľka 9-1. Osmičkové hodnoty prístupových práv

Typ prístupových právOsmičková hodnotaPísmeno
"sticky" bit1t
nastav ID užívateľa4s
nastav ID skupiny2s
čítanie4r
zápis2w
vykonateľnosť1x

Sčítate osmičkové hodnoty pre každú skupinu prístupových práv. Napríklad, ak chcete aby prístupové práva skupiny boli “na čítanie” a “na zápis”, použili by ste “6” v skupinovej časti informácií o prístupových právach.

Defaultné rístupové práva bash-u sú:

   $ ls -l /bin/bash
   -rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash
   

Prvá pomlčka by bola nahradená s “d” keby to bol adredár. Tri skupiny prístupových práva (vlastník, skupina, svet) sú zobrazené hneď za ňou. Vidíme, že vlastník má prístupové práva na čítanie, zápis a vykonanie (rwx). Skupina má len na čítanie a vykonateľnosť (r-x). A ktokoľvek ďalší má len čítanie a vykonateľnosť (r-x).

Ako by sme nastavili prístupové práva iného súboru tak aby vyzeral ako tie bash-u? Najprv si vytvoríme pokusný súbor:

   $ touch /tmp/example
   $ ls -l /tmp/example
   -rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example
   

Použijeme chmod(1) (čo znamená “change mode - zmeň mód”) aby sme zmenili prístupové práva pokusného súboru. Sčítajte osmičkové čísla prístupových práv, ktoré chcete. Aby vlastník mal čítanie, zápis a vykonateľnosť, dostaneme hodnotu 7. Čítanie a vykonateľnosť nám dáva 5. Poskladajte ich a odovzdajte programu chmod takto:

   $ chmod 755 /tmp/example
   $ ls -l /tmp/example
   -rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example
   

Na nastavenie špeciálnych prístupových práva, sčítajte čísla dajte ich na prvú pozíciu. Napríklad, aby ste určili nastavenie užívateľovho ID a nastavenie skupinového ID, použli by ste na prvej pozícii 6:

   $ chmod 6755 /tmp/example
   $ ls -l /tmp/example
   -rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example
   

Ak vás osmičkové hodnoty pletú, môžete s chmod použiť písmená. Skupiny prístupových práv sú reprezentované takto:

Vlastníku
Skupinag
Sveto
Všetky vyššie spomínanéa

Na to aby sme urobili to čo vyššie, museli by sme použiť niekoľko príkazových riadkov:

   $ chmod a+rx /tmp/example
   $ chmod u+w /tmp/example
   $ chmod ug+s /tmp/example
   

Niektorí ľudia dávajú prednosť písmenám pred číslami. Oba spôsoby vedú k rovnakej množine prístupových práv.

Vyššie sme na niekoľkých miestach spomínali prístupové práva nastava ID užívateľa a nastav ID skupiny. Chceli by ste vedieť, čo to je. Za normálnych okolností keď spustíte program, ten operuje pod vaším užívaeteľským kontom. To znamená, má také isté užívateľské práva ako vy sám. To isté je pravda o skupine. Keď spustíte program, vykonáva sa pod vašou aktuálnou skupinou. Pomocou prístupových práv nastavovania ID, môžete prinútiť program aby vždy bežal ako jeho vlastník (napríklad “root”). Nastavenie ID skupiny je to isté lenže pre skupinu.

Buďte s tým opatrní, programy s nastavením ID užívateľa a nastavením ID skupiny môžu otvoriť veľké bezpečnostné diery na vašom systéme. Ak často nastavujete ID užívateľa programom, ktoré vlastní “root”, dovoľujete komukoľvek aby spúšťal taký program a bežal ho ako root. Pretože root nemá na systéme žiadne obmedzenia, môžete usúdiť ako sa z toho môže stať veľký bezpečnostný problém. Skrátka, nie je na tom nič zlé, používať prístupové práva nastavenia ID užívateľa a nastavania ID skupiny, len používajte pri tom zdravý rozum.