|
UNIX DOZVOLE I UPUTSTVO ZA
CHMOD
Datum objavljivanja
24.02.2006
|
|
|
Razumevanje unix dozvola i chmod-a
Ova tema je odbačena i u knjigama i u online dokumentaciji. Iz nekog
razloga, izgleda da je ovo jedna od najčešćih nerazumevanja
sa
kojim se ljudi suočavaju učeći kako da pišu i ili
konfigurišu svoj prvi cgi program. Cilj ovog uputstva je da
razbistri koncepte koji su ovde uključeni. Najviše o čemu se
ovde piše , odnosi se na sve UNIX derivate (kao
što su
Linux, SVR4, BSD, i dr). Takođe je dobra ideja da kucate man chmod da
proverite specifične detalje za vaš sistem.
Korisnici
UNIX sistem koristi mnogim ljudima. Korisnici su razdvojeni da bi
označili suštinu za dodeljivanje vlasništva i
operacionih
privilegija nad sistemom. Korisnici mogu odgovarati ljudima iz realnog
sveta, ali takođe i modelu sistemskih operacija. Tako u mom sistemu
imam korisnika "nick" koji meni lično odgovara, ali imam
takođe i
korisnika "www" koji ima neophodne privilegije da radi sa lokalnim web
serverom.
UNIX-a nije briga šta meni lično korisnik znači. On
jednostavno
zna da pripada bilo kom zadatom korisniku, i šta je bilo kom
korisniku dozvoljeno da radi sa bilo kojom zadatom stvari (fajl,
program, uređaj itd) na sistemu. UNIX identifikuje bilo kog korisnika
kao ID korisnika (UID) njegovo korisničko ime (login username) kao
što su "nick" i "www" koji su samo nadimci za UID
koji
olakšavaju ljudima rad.
GRUPE
Korisnici mogu biti organizovani po grupama. Korisnik može pripadati
jednoj ili više grupa korisnika. Ideja grupe služi u svrhu
dodele paketa ovlašćenja za zadat izvor i deli ih između
više korisnika koji su njima potrebni (možda zato
što su
oni svi članovi jednog radnog tima na nekom projektu i svi trebaju da
imaju pristup zajedničkim projektnim fajlovima). Stoga na mom sistemu
korisnik "nick" i korisnik "www" oba spadaju u grupu "perlfect". Na
ovaj način mogu da imaju neke deljive privilegije nad fajlovima na
lokalnom webserveru.
Korisnik "nick" je potreban da bi ušli na sajt , a korisnik
"www" je neophodan da upravlja webserverom koji će upravljati sajtom.
Vlasništva
Svaki fajl na UNIX-u ima vlasničkog korisnika i vlasničku grupu. Znači
za svaki fajl u sistemu, korisnik "nick" može imati jedan od sledećih
vlasničkih odnosa:
"nick" poseduje fajl - vlasnik fajla je "nick"
"nick" je član grupe koja poseduje fajl - vlasnička grupa nad fajlom je
"perlfect"
"nick" nije ni vlasnik niti pripada grupi koja poseduje fajl
Dozvole
Svaki fajl na sistemu je povezan sa paketom dozvola. Dozvole kažu
UNIX-u šta može da se učini sa tim fajlom i od strane koga.
Postoje tri stvari koje možete ili ne možete sa datim fajlom:
čitanje
pisanje
(menjanje)
pokretanje
UNIX dozvole određuju koje će od ovih navedenih operacije biti
izvršene za bilo koji vlasnički odnos u odnosu na fajl.
Uproščćeno, šta može vlasnik da uradi,
šta
vlasnička grupa može da uradi, i šta bilo
ko drugi
može da uradi sa ovim fajlom. Za bilo koje zadato vlasničko pravo
trebaju nam tri pozicije da bi naveli pristupne dozvole: prva je da
označimo pristup čitanju (r) , druga je da označimo pristup pisanju (w)
, i treća da označimo pristup izvršenju (x) . Imamo tri
vlasnička odnosa "vlasnik" "grupa" "ostali" , takoda nam treba tri puta
za svaki. Svaka tačka može biti dodeljena ili oduzeta. Označavamo svaku
tačku svojim odgovarajućim operativnim slovom (r,w,x) i
brišemo stavke crtom (-) i sve ih stavljamo u red. Kao
primer
može biti rwxr-xr-x.Ovo treba da znači da vlasnik može da radi sve sa
fajlom, ali vlasnička grupa i svi ostali mogu samo da čitaju i da ga
izvrše. Obično u UNIX-u takođe postoji još jedna
stavka
koja izvršava ovih 9 šablona. Ne morate da znate
za nju
bar za sada. Ukoliko pokrenete komandu ls -l u komandnoj liniji
dobićete nešto nalik ovome:
Code:
[nick@thekla
src]$ ls -l
-rwxr-xr-x
1 nick
users
382 Jan 19
11:49 bscoped.pl
drwxr-xr-x
3 nick
users
1024 Jan 19 11:19
lib/
-rwxr-xr-x
1 nick
users
1874 Jan 19 10:23
socktest.pl
Prva kolona pokazuje šablon za dozvole za svaki fajl. Treća
kolona pokazuje vlasnika, i četvrta kolona pokazuje vlasničku grupu. U
međuvremenu informacija koju nam obezbeđuje ls -l trebalo bi da bude
dovoljna da prokljuvite šta svaki korisnik sistema može da
radi
sa bilo kojim fajlom u direktorijumu.
Direktorijumi
Još jedna interesantna stvar za pribeležiti je da lib/ koji
je
direktorijum ima dozvole takođe. Dozvole imaju drugačije značenje za
direktorijume. Evo šta znače:
Čitanje određuje da li korisnik može da vidi sadržaj direktorijuma npr.
da uradi ls unutar njega.
Pisanje određuje da li korisnik može da napravi novi fajl ili
briše fajl u direktorijumu. (Obratite pažnju da ovo u
suštini znači da korisnik sa pristupom pisanju u
direktorijumu
može brisati fajlove u ovom direktorijumu čak ukoliko on ili ona nemaju
dozvolu za pisanje za fajl. Zato sa ovime budite oprezni.)
Izvršavanje određuje da li korisnik može izvršiti
promenu direktorijuma u tekućem direktorijumu.
chmod
Da podesite ili izmenite dozvole za fajlove morate koristiti chmod
program. Naravno samo vlasnik fajla može koristiti chmod da izmeni
dozvole za fajlove. chmod ima sledeću sintaksu:
Code:
chmod
[options] mode file(s)
Recimo na primer delovi sa tim modom određuju nove dozvole za fajl ili
fajlove koji slede kao argumenti. Mod određuje koje korisničke dozvole
trebaju biti promenjene, i nakon toga koji tipovi pristupa trebaju biti
promenjeni. Recimo na primer:
Code:
chmod
a-x socktest.pl
Ovo znači da izvršni deo treba biti obrisan (-) za sve
korisnike
(vlasnik , grupa, ostali). Dozvole počinju sa slovom koje određuje koji
korisnici trebaju da budu obuhvaćeni izmenama a to može biti bilo koji
od sledećih:
u
- vlasnik
g
- vlasnička grupa
o
- ostali (koji ne spadaju ni pod "u" ni pod "g")
a
- svi korisnici
Ovo je praćeno promenom instrukcija koje se sastoje od +
(postavi
stavku) ili -(obrisi stavku) i slova koje treba odgovarati stavki koja
treba biti promenjena. Pogledajmo neke primere:
Code:
$ ls -l
socktest.pl
-rwxr-xr-x
1 nick
users
1874 Jan 19 10:23
socktest.pl*
$ chmod
a-x socktest.pl
$ ls -l
socktest.pl
-rw-r--r--
1 nick
users
1874 Jan 19 10:23
socktest.pl
$ chmod
g+w socktest.pl
$ ls -l
socktest.pl
-rw-rw-r--
1 nick
users
1874 Jan 19 10:23
socktest.pl
$ chmod
ug+x socktest.pl
$ ls -l
socktest.pl
-rwxrwxr--
1 nick
users
1874 Jan 19 10:23
socktest.pl*
$ chmod
ug-wx socktest.pl
$ ls -l
socktest.pl
-r--r--r--
1 nick
users
1874 Jan 19 10:23
socktest.pl
Čudni
brojevi....
Možete imati sukob stvari kao chmod 755 neki_fajl i naravno začudićete
se šta je ovo. U stvari možete promeniti ceo
šablon
dozvola nad fajlom odjednom , koristeći jedan broj kao jedan u ovom
primeru. Svaki mod ima odgovarajući kodni broj i kao što
ćemo
videti postoji veoma prost način da broj odgovara bilo kom modu.
Svaki od tri broja u modu odgovara jednoj od tri trostruke dozvole.
(u,g,o) Svaka tačka dozvole u jednom troslovu odgovara jednoj od
vrednosti: 4 za r, 2 za w, 1 za x. Ukoliko je vrednost koju dodate na
svom mestu. Ako je prazno (-), onda nećete dodati ništa (0).
(Neki od vas mogu primetiti da u stvari broj za troslov ima oktalnu
vrednost odgovarajuću troslovnom šablonu-ako neznate
šta
znači oktalna vrednost uopšte nije ni bitno samo pratite
uputstvo). Tako da ako fajl ima rwxr-xr-x dozvole radimo sledeći
proračun:
Troslov za u: rwx
=> 4 + 2 + 1 = 7
Troslov za g: r-x
=> 4 + 0 + 1 = 5
Troslov za o: r-x
=> 4 + 0 + 1 = 5
Što iznosi: 755
Znači, 755 je uvijen način da izgovorite "Nemam ništa protiv
da
drugi ljudi čitaju ili pokrenu ovaj fajl" i 777 znači "Svi imaju pun
pristup ovom fajlu"
prevedeno sa http://www.perlfect.com/articles/chmod.shtml |
|
|
|