Prístupové práva súborov v Unix / Linux OS

Práva pre priečinky a rovnako aj súbory sú v Unixových systémoch určované pre zvlášť vlastníka súboru (Owner), skupinu užívateľov (Group) a ostatných užívateľov (Others). Toto je z bezpečnostných dôvodov. Unixové systémy sú totiž navrhované ako systémy pre viac užívateľov, každý užívateľ teda musí mať presne vymedzený priestor, kam môže zapisovať, čo môže spúšťať a obsah ktorých súborov môže meniť. Aj keď používate toto prostredie ako jediný užívateľ, tieto práva vám pomôžu zabezpečiť vaše priečinky pred zneužitím a niekedy aj pred vami samotnými.

Owner / User (u) – Vlastník súboru. Je to užívateľ, ktorý daný súbor vytvoril.
Group (g) – Skupina, ktorú tvoria viacerí užívatelia. Jednotlivý užívatelia sa členia do skupín, obdobne, ako to asi poznáte z OS Windows.
Others (o alebo a) – Ostatní. Niekedy označované ako All Users Všetci užívatelia, ktorí nespadajú do skupiny vlastníka súboru sa označujú ako Others.

Základné rozdelenia práv pre súbory a priečinky:
Read (r) – Možnosť čítať obsah súboru. Pre priečinok to znamená, že je možné priečinok otvoriť a pozrieť si jeho obsah, ale len pomocou príkazu ls v Termináli.
Write (w) – Zapisovanie do súboru. Do súboru je možné zapísať nový obsah. Pri priečinku platí, že ak máte právo na zápis, môžete v ňom mazať obsah, či pridávať nový.
Execute (x) – Užívateľ s právom Execute môže súbor spúšťať, alebo priamo vstúpiť do priečinku, nie len vidieť jeho obsah v konzole pomocou príkazu ls ako v prípade Read.

 

Výpis práv súborov a priečinkov v termináli

Práva akéhokoľvek súboru či priečinku si môžete vypísať v Termináli pomocou rozšíreného príkazu ls. A to tak, že k nemu pridáte parameter -l. A teda príkazom:

ls -l

 

Užívateľ, ktorý daný priečinok či súbor vytvorí, je považovaný za vlastníka súboru (Owner) a automaticky získava práva so súborom ľubovoľne pracovať. Takže vlastník má práva RWX (read, write, execute – čítať, zapisovať, spúšťať). Pomlčka reprezentuje žiadne právo. Každý súbor má práva zapísané pomocou textovej alebo číselnej reprezentácie.

Súbor môže mať napríklad nasledovné práva:

-rwxr-xr--

Prvá pomlčka v tomto prípade ukazuje, že ide o súbor. Ak by sa jednalo o adresár, bol by tu symbol d.

Nasledujúca trojica písmen udáva práva pre vlastníka súboru. Vlastník v tomto prípade môže súbor ľubovoľne prezerať, zapisovať do neho, či ho spúšťať. O tomto nám hovoria písmená RWX.

Nasleduje kombinácia R-X, táto sa vzťahuje na skupinu užívateľov, ktorí sú v rovnakej skupine ako vlastník. Skupina môže teda čítať obsah súboru a tiež ho spúšťať. Nemôže do neho ale zapisovať, pretože na druhom mieste sa nachádza pomlčka.

Posledná trojica značí ostatných užívateľov. Títo majú len právo na čítanie obsahu súboru. Nemôžu jeho obsah meniť, ani spúšťať súbor.

Často sa používa číselné vyjadrenie práv súborov a adresárov. Pre náš reťazec by to bolo 751. Čiže môžeme povedať, že práva nášho súboru sú 751. Prevod na číselný formát popisujem v tabuľke nižšie.

 

Ďalší príklad práv si uvedieme pre priečinok:

drwx------

Prvý znak nám vraví, že sa jedná o priečinok (directory).

Ďalšia trojica sa vzťahuje k vlastníkovi priečinka. Ten môže s priečinkom robiť čokoľvek, ľubovoľne prehliadať aj meniť jeho obsah.

Zvyšných 6 znakov sú samé pomlčky, tieto nám charakterizujú práva pre skupinu a všetkých ďalších užívateľov. A teda nikto iný okrem vlastníka adresáru do neho nemôže nijak zasahovať ani vidieť jeho obsah.

Číselne sa dajú tieto práva zapísať ako 700.

 

Prevod na číselný tvar

Prevod z písmen na číselný tvar sa realizuje podľa nasledovnej tabuľky:

Číselná hodnota

Textový tvar

Binárna hodnota

Popis práv

0

---

000

Žiadne práva.

1

--x

001

Len právo spúšťať.

2

-w-

010

Len právo zapisovať.

3

-wx

011

Právo zapisovať a spúšťať.

4

r--

100

Právo len čítať.

5

r-x

101

Právo čítať a spúšťať.

6

rw-

110

Právo čítať a zapisovať.

7

rwx

111

Plné práva.

Ako vidno z tabuľky, každý bit má svoju váhu. Execute má váhu 1, Write váhu 2 a Read váhu 4. Ich skladaním potom dostaneme akúkoľvek kombináciu. Ak niečo nie je povolené, je to vyjadrené pomlčkou.

 

Zmena práv súborov a priečinkov príkazom chmod

Práva pre jednotlivé súbory či priečinky sa dajú meniť príkazom chmod. Štruktúra príkazu je nasledovná:

chmod 751 nazov_suboru

Tento príkaz zmení práva pre súbor s názvom nazov_suboru na rwx pre vlastníka, r-x pre skupinu a x pre ostatných.

Podobne to funguje aj pre priečinok. Tu vyzerá príkaz nasledovne:

chmod 751 nazov_priecinka/

Kde nazov_priecinka nahradíte jednoducho názvom vášho priečinka a nezabudnite na lomítko na konci príkazu.

Často ale potrebujete zmeniť práva nie len pre priečinok, ale aj pre celý jeho obsah. Vtedy treba realizovať rekurzívnu zmenu práv, musíte zadať príkaz:

chmod -R 751 nazov_priecinka/

 

O právach v Unixových systémoch by sa dalo písať ešte veľa, napríklad sa môžete stretnúť s takýmto reťazcom pri výpise práv súboru:

-rwxr-xr--+

Znak + na konci znamená, že je na súbor aplikovaný ACL (Access Control List), ktorý môže umožňovať prístup k súboru napríklad podľa IP adresy.

 

Nad všetkými právami sa nachádza užívateľ root. V rôznych distribúciách sa môže volať rôzne, napríkad SuperUser, SuperVisor, admin, či administrator. Tento užívateľ sa pri bežnom behu systému používa len zriedka. Jeho práva totiž presahujú všetky práva ostatných užívateľov. Môže napríklad aj zmeniť vlastníka akéhokoľvek súboru. Ak teda náhodou zmeníte práva k nejakému súboru a nebudete mať viac k nemu prístup, root vás môže zachrániť. V niektorých distribúciách používate tento účet tak, že pred vykonávanú akciu zadáte sudo, čo znamená SuperUser Do. Vtedy sa akcia vykoná so systémovými privilégiami. Na tento príkaz naráža aj úvodný obrázok k tomuto článku, ktorý pochádza z xkcd. Ale pozor, root môže byť rovnako skazou ako je záchranou, môže totiž priamo zasahovať do systémových súborov a ak si užívateľ nie je istý, čo robí, môže systém nenávratne poškodiť.

1 thought on “Prístupové práva súborov v Unix / Linux OS

Leave a Comment