Slackware Logo
Slackware Logo

Lugons

Info

Prevodioci

Greške

 
  LUGONS Slackbook prevod

9.2 Dozvole

Dozvole su druga važna stavka višekorisničkog sistema fajlova. Njima se određuje ko može da čita, piše i izvršava fajlove.

Postoje četitri skupa dozvola. Svakom skupu odgovara određena pozicija oktalne cifre koja može imati različite vrednosti. Prve tri pozicije su za skupove dozvola koje se odnose na vlasnika, grupu kojoj pripada vlasnik i sve ostale. Pozicije su dodeljene respektivno. Četvrta oktalna cifra se koristi za postavljanje ID korisnika, ID grupe i lepljivi (sticky) bit. Oktalne vrednosti koje se odnose na dozvole su (takođe postoje i odgovarajuća slova koja su prikazana programima kao ls a može ih koristiti sa chmod):

Table 9-1. Oktalne vrednosti dozvola

Tip dozvole Oktalna vrednost Slovo dozvole
“sticky” bit 1 t
postavi ID korisnika 4 s
postavi ID grupe 2 s
čitanje 4 r
pisanje 2 w
izvršavanje 1 x

Da biste dobili oktalan broj koji reprezentuje skup dozvola, sabirate pojedinačne vrednosti dozvola u skupu (pojedinačne vrednosti dozvola vidimo iz gornje tabele). Recimo za “čitanje” i “pisanje”, bi bilo “6”.

bash-ove podrazumevane dozvole su:

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

Prva crtica bi bila zamenjena sa “d” da se radi o direktorijumu. Zatim su prikazane tri grupe dozvola (dozvole vlasnika, grupe kojoj vlasnik pripada, i svih ostalih). Vidimo da vlasnik ima dozvolu da čita, piše i izvršava (rwx), grupi je dozvoljeno samo da čita i izvršava (r-x), kao i svim ostalima (r-x).

Kako bismo postavili dozvole drugog, proizvoljnog fajla iste kao u predhodnom primeru? Prvo, napravimo neki fajl koji će nam poslužiti kao primer:

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

Koristićemo chmod(1) (što je skraćenica od “change mode”) da postavimo dozvole na naš primer. Saberite oktalne brojeve za dozvole koje želite. Ako vlasnik treba da čita, piše i izvršava, onda imamo vrednost 7. Čitanje i izvršavanje je 5. Ovo lepo uklopljeno sa chmod bi izgledalo ovako:

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

Sada se verovatno pitate: “A čime su određene dozvole koje se postavljaju na novi fajl?” Odgovor je jednostavan. bash ima ugrađen programčić nazvan umask, koji se inače nalazi u većini Unix školjki. I on kontroliše koje će se dozvole postaviti na novi fajl. Već je bilo reči o bash-ovim ugrađenim programima do nekog nivoa u Section 8.3.1. Na umask se treba malo navići. Funkcioniše slično kao chmod, samo obrnuto. Vi postavite oktalne vrednost akcija (dozvola) koje ne želite da budu dozvoljene u novo-kreiranim fajlovima. Podrazumevana vrednost za umask je 0022.

% umask
0022
% umask 0077
% touch tempfile
% ls -l tempfile
-rw--------  1 david    users    0 Apr 19 11:21 tempfile

Za više informacija o bash-u pogledajte man stranice.

Za postavljanje specijalnih dozvola sa chmod saberite oktalne vrednosti dozvola koje postavljate i smestite ih u prvu kolonu. Na primer, za postavljanje dozvola korisnika i grupe ( eng. “set user ID” i “set group ID”) postavimo “6”. Dakle:

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


Ako vas ovi brojevi zbunjuju, uz chmodmožete koristiti slova. A šta koje slovo predstavlja se vidi iz sledećeg primera:

Vlasnik u
Grupa g
Ostali o
Svi gore navedeni a

Da bi smo prethodni primer uradili na ovaj način potrebno je nešto više kucanja:

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

Neko preferira slova, a neko brojeve, sve u svemu rezultat je uvek isti.

Oktalni format je obično brži i češće se koristi u skriptama. Mada su slova u nekim situacijama moćnije sredstvo. Na primer, koristeći brojeve je teže promeniti jednu grupu dozvola a da se ostale očuvaju, što je veoma lako sa slovima.

% ls -l /tmp/
-rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
% chmod g-rwx /tmp/example?
-rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
-------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2

Spominjali smo postavljanje dozvola vezane za korisnike i grupe na nekoliko mesta. Možda se pitate šta je ovo. Obično, kada pokrenete program, on se izvršava pod vašim korisničkim imenom sa dozvolama koje vi posedujete. Isto važi i za vašu grupu. Kada ga pokrenete, izvršava se pod grupom kojoj vi pripadate. Sa “set user ID” možete podesiti da se program uvek pokreće sa pravima jednog istog korisnika (kao na primer “root”). “Set group ID” je slično kao za korsnika, samo što se odnosi na grupu.

Dobro pazite sa ovim, jer možete otvoriti velike bezbednosne rupe na vašem sistemu. Ako često korsitite “set user ID ” i “set group ID” koje poseduje korisnik root, dozvoljavate da svako pokreće taj program kao root. Kako root nema nikakvih ograničenja na sistemu, vidite da ovo može biti velik bezbednosni problem. Ukratko, nije loše dozvoliti programu ono što može određeni korisnik ili grupa, ali samo za neke obične stvari.