
Zašto je dobro razumeti dozvole datoteka pre nego što menjate pristup
Kada upravljate serverom ili deljenim direktorijumom, promena dozvola bez jasne predstave može dovesti do curenja podataka ili prekida servisa. Vi morate znati šta svaka komponenta standardnog modela znači: ko ima prava da čita, piše ili izvršava fajl. Osnovni model u Linuxu deli pristup na tri klase — vlasnik (user), grupa (group) i ostali (others) — i tri tipa prava: čitanje (r), pisanje (w) i izvršavanje (x).
Kako brzo proveriti i tumačiti postojeće dozvole
Najčešći način da vidite dozvole je komanda ls -l. Izlaz pokazuje format kao na primer -rw-r—–, gde prvi karakter označava tip fajla, a narednih devet predstavljaju prava za user, group i others u trojkama po tri. Numerički pristup (oktalan) olakšava skriptovanje: 644 znači vlasnik rw, grupa r, ostali r. Primeri komandi koje ćete koristi su:
-
ls -l /putanja/do/fajla— prikaz dozvola i vlasnika -
chmod 644 fajl.txt— postavljanje numeričkih prava -
chmod g+w fajl.txt— simbolički dodavanje prava grupi -
chown korisnik:grupa fajl.txt— promena vlasništva
Kada standardni model nije dovoljan i šta su specijalni bitovi
Osnovni rwx model je jednostavan i efikasan za većinu situacija, ali često se susrećete sa potrebama koje on ne može direktno da reši — na primer, deljenje fajlova između više korisnika iz različitih grupa ili fino podešavanje pristupa na nivou pojedinačnih korisnika. Pre nego što pređemo na ACL, važno je poznavati setuid, setgid i sticky bit:
-
setuid (s na mestu x za vlasnika) — izvršavanje programa sa privilegijama vlasnika fajla;
-
setgid — sličan setuid, ali primenjen na grupu; na direktorijumima često obezbeđuje da novi fajlovi nasleđuju grupu;
-
sticky bit na direktorijumu — samo vlasnik fajla, vlasnik direktorijuma ili root mogu obrisati fajl u tom direktorijumu (često se koristi za /tmp).
Ovi bitovi su korisni, ali ne rešavaju situacije gde želite dodeliti različita prava različitim pojedinačnim korisnicima unutar iste datoteke ili direktorijuma. Tu nastupa POSIX ACL — mehanizam koji vam omogućava granularniju kontrolu pristupa.
U sledećem delu ćemo ući u osnovnu sintaksu i primere komandi za ACL (getfacl, setfacl), objasniti masku i efektivna prava, i pokazati kako sigurnije primeniti ACL u realnim scenarijima.
Osnovna sintaksa ACL i kako koristiti getfacl / setfacl
POSIX ACL dodaje novu složenost preko standardnih rwx bitova, ali osnovne komande su jednostavne i omogućavaju brzo proveravanje i izmenu. Dve najvažnije su:
-
getfacl— prikazuje trenutne ACL zapise za fajl ili direktorijum; -
setfacl— postavlja, menja ili uklanja ACL zapise.
Primer osnovnog izlaza getfacl:
# file: fajl.txt
# owner: marka
# group: dev
user::rw-
user:ivan:rwx
group::r--
group:dev:rwx
mask::rwx
other::r--
U ovom primeru vidite imenovane korisničke entitete (user:ivan:rwx), grupne unose (group:dev:rwx) i masku (mask::rwx). Tipične operacije sa setfacl:
-
Dodavanje ili izmena pravila za korisnika:
setfacl -m u:ivan:rwx fajl.txt -
Dodavanje pravila za grupu:
setfacl -m g:qa:rx projekat/ -
Postavljanje podrazumevanih (default) ACL za direktorijum:
setfacl -m d:g:dev:rwx /shared— nove datoteke nasleđuju ove unose; -
Uklanjanje jednog unosa:
setfacl -x u:ivan fajl.txt; -
Brisanje svih proširenih ACL zapisa:
setfacl -b fajl.txt(uključi i-kza uklanjanje default ACL iz direktorijuma).
Za rekurzivno primenjivanje koristite -R, ali budite pažljivi — lako možete nenamerno promeniti prava na velikom broju fajlova.

Razumevanje maske i efektivnih prava — česte zamke
Maska (mask::) je često izvor nejasnoća. Ona predstavlja maksimalna dopuštena prava koja se mogu dodeliti svim imenovanim korisnicima, imenovanim grupama i grupnom zapisu vlasništva. Bitno: maska ne utiče na vlasnika fajla niti na “others”.
Kako izračunati efektivna prava? Uzmete prava dodeljena entitetu i izvršite logičko AND sa maskom. Primer:
-
Ako imate
user:ivan:rwximask::r-x, efektivna prava za Ivana sur-x(pisanje je blokirano maskom). -
Ako grupa ima
group:dev:rwxa maska jemask::rw-, tada grupa efektivno imarw-.
Česta greška: korisnik očekuje da će imenovani unos imati ista prava koja su navedena, ali maska ih može skratiti. Uvek proverite getfacl nakon izmene i, po potrebi, podesite masku eksplicitno: setfacl -m m:rwx fajl.txt.
Praktične preporuke i sigurnosne smernice pri primeni ACL
ACL su moćan alat, ali i potencijalni izvor grešaka ako se koriste bez discipline. Nekoliko preporuka:
-
Proverite podršku fajl sistema — neke starije particije ili mrežni mount-ovi možda ne podržavaju ACL. Ako
getfaclne prikazuje očekivano, proveritemountizlaz ili dokumentaciju za vaš FS (ext4 obično podržava ACL po defaultu, ali može zavisiti od mount opcija). -
Kombinujte setgid na direktorijumima sa default ACL-ima za zajedničke projekte:
chgrp dev /project; chmod g+s /project; setfacl -m d:g:dev:rwx /project. Time se obezbeđuje da novi fajlovi nasleđuju grupu i potrebna prava. -
Kada radite masovne izmene koristite
-Rpažljivo i prvo testirajte na manjem skupu fajlova. Zapišite promene (ili verzionisani skript) da biste mogli reverzibilno vratiti stanje. -
Uvezite ACL u rutinu audita — dokumentujte ko je dobio koja prava i zašto. Previše rasprostranjenih ACL pravila otežava reviziju i može sakriti greške koje ostavljaju otvorene pristupe.
-
Prilikom kopiranja fajlova između sistema koristite alate koji očuvaju ACL (npr.
rsync -A) ili eksplicitno ponovo primenite potrebne ACL unose.
U sledećem delu ćemo pokazati konkretne scenarije: postavljanje zajedničkog repozitorijuma za tim, rešavanje problema sa maskom i primer rollback skripti za ACL promene.

Završne napomene o primeni naprednih dozvola
Kada radite sa ACL i specijalnim bitovima, fokusirajte se na procese i navike koje smanjuju rizik — testiranje na staging okruženju, zapisivanje promena i redovan audit prava. Tehnike i alati su moćni, ali njihova bezbednost zavisi od discipline administracije: pravila treba da budu jasna, dokumentovana i reverzibilna.
-
Pre svake veće izmene napravite rezervnu kopiju postojećih ACL zapisa i meta-podataka; to olakšava povratak u prethodno stanje.
-
Automatizujte ponovnu primenu ACL kod migracija ili prilikom kreiranja novih resursa, i koristite raspoložive alate za očuvanje ACL pri kopiranju.
-
Uvedite periodične provere i trening za tim kako biste izbegli prekomerno razgranate i teško pregledne ACL konfiguracije.
Za dodatne tehničke reference i praktične primere pogledajte Arch Wiki: Access Control Lists, gde su objašnjeni primeri i često postavljana pitanja iz perspektive praktične administracije.
Frequently Asked Questions
Kako da proverim da li fajl sistem podržava ACL?
Najlakši način je pokušati da pročitate ACL izlaz komandom getfacl na test fajlu; ako nema podrške, dobićete grešku ili prazan rezultat. Takođe proverite opcije u izlazu komande mount i dokumentaciju vašeg fajl sistema (npr. ext4 može zahtevati određene mount opcije). Ako je potrebno, omogućite ACL putem mount opcija ili fajl sistema.
Zašto imenovani korisnik nema očekivana prava nakon setfacl?
Najverovatniji uzrok je maska koja ograničava efektivna prava. Maska definiše maksimum za imenovane korisnike i grupe, pa čak i ako je korisniku dodeljeno pisanje, maska to može ukloniti. Rešenje je eksplicitno podesiti masku (npr. setfacl -m m:rwx) ili prilagoditi unose tako da efektivna prava budu odgovarajuća.
Kako bezbedno primeniti ACL rekurzivno na veliki direktorijum?
Prvo testirajte na manjem podskupu fajlova. Napravite rezervnu kopiju postojećih ACL zapisa (getfacl -R > acls.backup) i koristite komandne opcije pažljivo (setfacl -R). Ako vam treba reverzibilnost, sačuvane ACL možete vratiti pomoću setfacl –restore. Takođe razmislite o pisanju skripte koja beleži izmene i uključuje tačan opseg fajlova nad kojima se primenjuju izmene.
