Thursday, July 19, 2012

Temeljne dozvole na Linux/Unix operacijskom sustavu...

Na Linuxu postoje tri sustava za kontrolu pristupa objektima (primjerice datotekama, procesima, dijeljenoj memoriji):
  1. Temeljne Unix dozvole koje su nastale s prvim Unixom i danas ih podržavaju svi klonovi Unixa.
  2. ACL-ovi koju su naprednija varijanta temeljnih Unix dozvola, odnosno, njihova nadogradnja.
  3. SELinux dozvole koje su specifične za Linux i dosta složenije od prethodne dvije vrste.
U ovom postu bit će riječi samo o temeljnim Unix dozvolama koje su relativno jednostavne za shvatiti i koristiti. Preporučam prije ovog posta pročitati post o  korisnicima i grupama.

Kao što je rečeno u postu o korisnicima i grupama kada se izlista fajl korištenjem naredbe ls, dobija se nešto u sljedećem stilu:
$ ls -l mozilla.pdf
-rw-r--r--. 1 sgros zemris 40360 Vel 27 21:30 mozilla.pdf
Vlasnik je u ovom slučaju korisnik sgros, dok je grupa zemris. Grupa znakova na početku su dozvole, počevši od drugog znaka, slova r. Prvi znak je tip datotečnog objekta i ako je tamo minus onda se radi o običnoj datoteci - što je ovdje slučaj.

Dozvole idu u grupama po tri znaka (odnosno, tri bita budući da se svaki znak zapisuje korištenjem jednog bita). U ovom slučaju su grupe dozvola rw-, zatim r-- i konacno r--. Prva grupa (rw-) primjenjuje se kada vlasnik datoteke pokuša pristupiti datoteci. Druga grupa (r--) primjenjuje se kada korisnik koji je član grupe kojoj datoteka pripada pokuša pristupiti datoteci. Konačno, treća grupa (r--) se primjenjuje na sve ostale korisnike.

Kao što je rečeno, u svakoj grupi su tri bita. Prvi bit označava da li određeni korisnik, grupa ili ostali imaju pravo čitanja datoteke (ako imaju u tom slučaju piše slovo r) ili nemaju (u tom slučaju je ispisan minus). Drugo slovo označava da li imaju pravo pisanja u datoteku (postoji slovo w) ili ne (samo je minus) i konačno, treće slovo označava da li je datoteka izvršna (slovo x), tj. može li se pokrenuti kao program, ili ne (stoji samo minus).

Dakle, u navedenom primjeru, vlasnik datoteke (korisnik sgros) može čitati datoteku (prvo slovo r u grupi rw-), može pisati u nju (slovo w u grupi rw-) i ne može ju izvršavati odnosno ne radi se o izvršnoj datoteci (zadnji minus u grupi rw-). Svi članovi grupe mogu samo čitati datoteku i ne mogu pisati u nju niti ju izvršavati (jer je r-- dozvola) i, konačno, ostali mogu kao i članovi grupe samo čitati datoteku.

Treba primjetiti kako se može desiti da neka datoteka ima, primjerice, sljedeće dozvole: ---rw-r-x. U ovom slučaju, vlasnik datoteke nema nikakva prava nad datotekom (njegova grupa dozvola je ---), grupa može čitati i pisati, a svi ostali mogu čitati i izvršavati datoteku. Korisnik ako pokuša pisati u datoteku, ili je izvršavati, neće mu biti dozvoljeno. Dakle, za vlasnika se gledaju isključivo prva tri bita, za grupu druga tri bita i za sve ostale treća tri bita. Nema prenošenja od grupe na ostale, ili od korisnika na grupu pa na ostale.

Još jedna stvar koju je bitno istaknuti je da direktoriji imaju drugačije značenje bitova:
  1. Bit r označava da se može direktorij čitati, odnosno, da se može dohvatiti popis datoteka u direktoriju.
  2. Bit w označava da se u direktorij mogu dodavati nove datoteke.
  3. Bit x znači da se može pristupati metapodacima pojedine datoteke (metapodaci su veličina, blokovi na disku, itd).
Najčešći mod za direktorij je rwxr-xr-x, odnosno, rwx------ u slučaju restriktivnijih postavki. Međutim, ima i sljedeća varijanta: rwx-----x. Primjetite da se ostalima nalazi postavljen bit x, ali ne i bitovi r i w. To znači da ostali ne mogu čitati sadržaj direktorija, niti mogu mijenjati sadržaj direktorija, ali ako znaju datoteku unutar direktorija onda joj mogu pristupiti. To koriste Web poslužitelji za pristup osobnim Web stranicama korisnika.

Neke korisničke naredbe za upravljanje temeljnim dozvolama


Dozvole se mijenjaju koristenjem naredbe chmod(1):
chmod <dozvole> <datoteke i/ili direktoriji>
Prvi argument, dozvole, može biti zadan simbolički ili numerički. Kada se zadaje simbolički onda se govori koje dozvole se dodaju (ili oduzimaju) kojoj grupi korisnika. Primjerice, o+rx daje pravo čitanja i izvršavanja svima ostalima. S druge strane, ako se koristi numerički zapis, onda se zadaju apsolutne vrijednosti bitova pristupa. Primjerice, 700 će postaviti rwx------ dozvole, ili 755 će postaviti rwxr-xr-x.

No comments:

About Me

scientist, consultant, security specialist, networking guy, system administrator, philosopher ;)

Blog Archive