![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||||||||
Filesystem Hierarchy Standard (2)
Ko je ko u sistemu fajlova? U prošlom broju smo se dotakli teme organizacije fajl-sistema pod Linuksom, gde smo pokušali na da jednostavan način objasnimo jednu od stvari koje dosta zbunjuju nove korisnike tog operativnog sistema, a koji su ranije koristili Windows. U ovom broju ćemo pokušati da objasnimo još neke stvari koje se po načinu realizacije razlikuju od onoga što gledamo na Windowsima. Sve je fajl Što se Windowsa tiče, stvar je jednostavna i jasna. Fajl-sistem se sastoji od fajlova (datoteka) i direktorijuma (foldera) pomoću kojih se fajlovi organizuju u logičke celine. Linuks ima malo drugačiju filozofiju (ili drugačiju arhitekturu operativnog sistema), pa pod fajlove ne ubraja samo tipične datoteke sa podacima (txt, doc, mp3, jpg), već i sve ono što ima formu niza binarnih informacija. Stoga, Linux čak i tastaturu predstavlja kao datoteku, pošto se njen ulaz tretira kao niz karaktera. Pod fajlove ulaze i hard-diskovi, kernel strukture podataka, štampači, serijski portovi, programi za emulaciju terminala i dosta drugih stvari. Hardverski uređaji se kod Linuxa logički dele u dve grupe fajlova. Prva se odnosi na uređaje koji rade sa nizovima karaktera, dok se druga grupa odnosi na takozvane blok uređaje, u koje najčešće spadaju jedinice masovne memorije, kao što su hard-diskovi ili fleš memorije. Naziv su dobili po tome što se na tim uređajima podaci čitaju i pišu u blok formatu, a ne direktnom manipulacijom pojedinačnih bajtova. Linuks generalno poznaje tri vrste fajlova: standardne fajlove, direktorijume i specijalne fajlove.
• Kanali ili cevi (p) predstavljaju specijalni tip fajlova koji funkcionišu po principu bafera FIFO (First In First Out). Njihovim korišćenjem možemo odrediti da izlaz sa jednog procesa ide na ulaz drugog. U pitanju su fajlovi koji se često koriste za razmenu podataka između različitih programa ili između različitih procesa u okviru jednog programa. • Soketi (s) su još jedan od „egzotičnih” tipova fajlova koje srećemo u Linuksu. Obavljaju sličnu funkciju kao kanali, samo što se ovde radi o dvostranoj komunikaciji. Iako se radi o fajlovima koji su vidljivi unutar fajl-sistema, njima jedino mogu pristupati procesi sa kojima su povezani. • Linkovi (l) imaju funkciju da ukazuju na poziciju nekog fajla u fajl-sistemu, slično kao što to rade prečice (Shortcuts) u Windowsu. Linuks razlikuje dve vrste linkova. Prvi se nazivaju simboličkim linkovima i sadrže lokaciju fajla na koji se pozivaju. Drugi tip linkova su hard linkovi i oni u okviru indeksnog deskriptora dodatno nose zapis o fajlu na koji ukazuju. Izmene urađene bilo na originalu ili na hard linku biće prikazane bez obzira na to koji od njih pozivamo. Isto tako, ukoliko obrišemo originalni fajl, hard link će preuzeti njegovu funkciju. • Blok uređaji (b) i karakter uređaji (c) su ukratko objašnjeni u prethodnom delu testa. Atributi fajl-sistema
Sintaksa komande je prilično jednostavna: chattr [-RVf] [-v verzija] [atribut] fajlovi... Opcioni parametri [-RVf] ukazuju da se atributi menjaju rekurzivno u okviru direktorijuma i da se simbolički linkovi preskaču (-R), a da program ispisuje opširan komentar tokom rada (-V), kao i da se preskaču poruke o greškama (-f). Parametar [-v] postavlja verziju fajla, dok se postavljanje atributa obavlja preko parametra [atribut] tako što uz slovo atributa koristimo i karaktere -+=. Znak minusa pred atributom znači da se atribut briše, dok plus označava njegovo setovanje. Znak jednakosti govori sistemu da su navedeni atributi jedini koje će fajl ili folder imati. Spisak atributa navodimo u tabeli (dole).
Zadavanjem atributa „A” se sprečava zapisivanje podataka o vremenu pristupa fajlu. Atribut „S” govori sistemu da podatke zapisuje na disk direktno, bez keširanja. Slična je situacija i kod atributa „D”, koji radi istu stvar, ali sa direktorijumima. Objašnjenje rada atributa „I” prevazilazi okvire ovog teksta, što važi i za onaj sa oznakom „T”. Primer korišćenja može da izgleda ovako: sudo chattr -R +i /sbin /usr/sbin Parametar -R daje instrukciju da komanda obradi sve fajlove rekurzivno i da zabrani brisanje fajlova u direktorijumima gde su smešteni sistemski binarni fajlovi (ovi fajlovi se inače veoma retko brišu). Ukoliko nakon ovoga komandom lsattr izlistamo sadržaj direktorijuma, videćemo da pored svakog fajla (gde je to bilo moguće) postoji setovan atribut „i”. Dozvole i vlasništvo
Shell komanda ls (list) služi za prikazivanje sadržaja fajlova u direktorijumu. Sa dodatkom parametra -l dobijamo dosta detaljniju informaciju: root@FAS:~# ls -l /etc total 976 -rw-r--r-- 1 root root 2981 Sep 1 2015 adduser.conf -rw-r--r-- 1 root root 45 Sep 1 2009 adjtime drwxr-xr-x 2 root root 4096 May 30 02:13 alternatives Ovde smo prikazali samo prve tri stavke (od 976) iz direktorijuma /etc. Rezultat rada komande se može podeliti na sedam logičkih celina (tabela desno):
-rw-r--r-- Šta ovo predstavlja? Reč je o načinu na koji Linux (UNIX, BSD, OS X, Android...) prikazuje dozvole za rad sa fajlom. Dalje delimo rezultat na sastavne delove:
Polje „vlasnik” prikazuje da vlasnik fajla (u našem slučaju root) ima pravo na čitanje (r), pisanje (w), ali da nema dozvolu za izvršavanje (x), što je i logično pošto nije reč o izvršnom, već fajlu sa podacima. Polje „grupa” nam ukazuje da član grupe koji nije vlasnik može samo da čita fajl (r), što se odnosi i na polje „svi korisnici”. Dozvole se postavljaju komandom chmod, koja ima sledeći format: chmod [opcije] dozvole[,dozvole] fajl1 [fajl2 ...]
Chmod 755 dokument.txt Svih sedam mogućih vrednosti su prikazane u sledećoj tabeli:
Nekima se opet više dopada simbolički režim komande chmod, kada se umesto brojeva koriste oznake. Naš prethodni primer u tom slučaju bi izgledao ovako: chmod u=rwx,go=rx dokument.txt Prvo da objasnimo oznake.
chmod a=rwx,go-w moj_dokument.txt gde smo prvo svim korisnicima dodelili sva prava (a=rwx), a zatim grupi i ostalima oduzeli pravo zapisivanja (go-w). Umesto „a”, mogli smo da koristimo „ugo”, a umesto znaka „=”, u ovom slučaju bi mogao da posluži i „+”. Znak „+” označava dodeljivanje dozvole, „-” njeno oduzimanje, dok „=” dodeljuje vrednost koja sledi iza njega. Uz komandu za dodeljivanje prava pristupa, često se koristi komanda chown (change owner), čiji je zadatak da promeni vlasništvo nad nekim fajlom ili direktorijumom. Nećemo se detaljnije baviti njenom sintaksom, već ćemo predstaviti tri oblika koji se najčešće koriste: chown [opcije] vlasnik fajl chown [opcije] vlasnik:grupa fajl chown [opcije] vlasnik:grupa direktorijum
chown -hR igor:grupa2 /podaci Opcija -R govori da se vrši rekurzija kroz direktorijum /podaci, -h forsira promenu simboličkih linkova, vlasnik fajla postaje korisnik igor kao član grupe „grupa2”. • • • Nadamo se da smo ovim tekstom uspeli da demistifikujemo još jednu temu koja od Linuxa pravi babarogu. Videli smo da ovaj operativni sistem ima veoma sofisticiran sistem rada sa atributima fajlova i pravima vlasništva nad njima, ali da uopšte nije teško maksimalno iskoristiti taj potencijal, kako se to na prvi pogled može učiniti. Igor S. RUŽIĆ |
| |||||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |