Dozvole i kontrola pristupa datotekama
-
dozvole su dio informacijskog čvora datoteke
- tri klase: dozvole korisnika (engl. user), dozvole grupe (engl. group) i dozvole ostalih (engl. others)
- tri dozvole (u svakoj klasi): čitanje (engl. read), pisanje (engl. write), pokretanje (engl. execute)
- sve kombinacije tih čine obične načine pristupa (engl. modes)
-
značenje dozvola za datoteke
- read: čitanje sadržaja datoteke
- write: promjena sadržaja datoteke
- execute: pokretanje datoteke (potrebno, primjerice, kod kompajliranih C/C++ programa i Bash/Perl/Python skripti)
-
značenje dozvola za direktorije
- read: čitanje imena datoteka i poddirektorija u direktoriju (ali ne i sadržaja, dozvola, veličine i ostalih metapodataka)
- write: promjena datoteka i poddirektorija u direktoriju: stvaranje, brisanje i preimenovanje
- execute: prolaz kroz direktorij i mogućnost pristupa datotekama i poddirektorijima (ali ne i čitanje sadržaja direktorija)
-
chmodmijenja način pristupa dane datoteke -
simbolička notacija
u-- user,g-- group,o-- others,a-- all+-- dodaje,--- briše,=-- postavljar-- read,w-- write,x-- execute- npr.
u+r,go-rx,a=r
-
oktalna notacija
r-- vrijednost 4;w-- vrijednost 2;x-- vrijednost 1;--- vrijednost 0- tri broja -- user, group, others
-
primjerice, dozvole
644,755,6006 4 4 / | \ User Group Others # User -- broj 6 označava da korisnik ima dozvole za čitanje(r) i pisanje(w) # Group -- broj 4 označava da grupa ima dozvolu samo za čitanje(r) # Others -- broj 4 označava da ostali imaju dozvolu samo za čitanje(r) 7 5 5 / | \ User Group Others # User -- broj 7 označava da korisnik ima dozvole za čitanje(r), pisanje(w) i pokretanje(x) # Group -- broj 5 označava da grupa ima dozvolu za čitanje(r) i pokretanje(x) # Others -- broj 4 označava da ostali imaju dozvolu za čitanje(r) i pokretanje(x) 6 0 0 / | \ User Group Others # User -- broj 6 označava da korisnik ima dozvole za čitanje(r) i pisanje(w) # Group -- broj 0 označava da grupi nije dodjeljena niti jedna dozvola # Others -- broj 0 označava da ostalima nije dodjeljena niti jedna dozvola -
644,755,600je isto što i0644,0755,0600
-
naredba
groupsdaje popis grupa kojih je korisnik član- korisnik može biti član više grupa
- da bi korisnik mogao pristupiti datoteci koja pripada grupi
grupa, dovoljno je da bude član grupegrupa
Zadatak
-
Koje je značenje sljedećih dozvola kod naredbe
chmod ______ dat.txt?go-rxa=rw0774665ug+w-rx
-
Može li korisnik u posljednjem primjeru mijenjati sadržaj datoteke
dat.txt? Dokažite! -
Stvorite datoteku
dat000i u nju upišite sadržaj po želji.- Postavite joj oktalnom notacijom dozvole na
r-xrwx--x. - Pokušajte promijeniti njen sadržaj. Objasnite zašto to ne možete, bez obzira što ste u odgovarajućoj grupi.
- Postavite dozvolu za sebe i ostale na čitanje i promjenu, a zatim grupi obrišite dozvolu promjene sadržaja i pokretanja datoteke.
- Postavite joj oktalnom notacijom dozvole na
Dodatni zadatak
-
Postoje i posebni načini pristupa (engl. special modes), koji se dijele u tri grupe:
- special execute,
- setuid i setgid,
- sticky bit.
-
Proučite
chmod(1)i objasnite kako rade. - Doznajte kako se koristi naredba
group, te čemu služi.
Korisnička maska
-
umaskje korisnička maska (engl. user mask)- služi za ograničavanje dozvola koje dobivaju stvorene datoteke i direktoriji
- koristi simboličku ili oktalnu notaciju, kao i
chmod - zadana vrijednost u većini distribucija je
022
-
zadane dozvole
- za datoteke:
rw-rw-rw-, oktalno666 - za direktorije:
rwxrwxrwx, oktalno777
- za datoteke:
-
postupak računanja efektivnih dozvola dan je na Wikipedijinoj stranici o umasku
Zadatak
- Druga često korištena vrijednost za umask je
077. Objasnite njeno značenje. - Pronađite vrijednost umaska koji ostavlja sve dozvole korisniku, briše dozvolu čitanja grupi i briše dozvolu pokretanja ostalima.
Liste kontrole pristupa
-
liste kontrole pristupa (engl. Access Control Lists, ACL) proširuju mogućnosti dozvola
- skup aplikacija za manipuliranje proširenim dozvolama
- 1998. specifikacija poznata pod imenom POSIX.1e "draft 17"
-
vrste ACL-a (dvije podjele)
-
prva podjela
- minimalne (engl. minimal): ekvivalentne standardnim dozvolama
- proširene (engl. extended)
-
druga podjela
- pristupne (engl. access)
- zadane (engl. default)
-
-
zadane ACL, ako postoje, poništavaju korisničku masku
- ACL algoritam: UID ?= owner, UID ?= named, GID ?= owner, GID ?= named, other
getfaclčita ACL-e datotekesetfaclpostavlja ACL-e datoteke
Zadatak
- Korisniku
profesordodijelite na datotecidat1mogućnost čitanja i pokretanja. Uočite kako ovo djeluje na obične dozvole grupe. - Grupi
diskdodijelite na istoj datoteci mogućnost čitanja i pisanja. Uočite kako ovo djeluje na ACL masku.
Zadatak
Dodijelite direktoriju dir1 zadanu ACL koja omogućuje čitanje, pisanje i pokretanje za korisniku nobody.
- U kakvom su odnosu zadane i pristupne ACL tog direktorija? Impliciraju li zadane ACL pristupne ACL?
- Uočite kako ovo djeluje na datoteke i direktorije koje u njemu stvarate. Objasnite zašto datoteke dobivaju
#effective:rw-.
Dodatni zadatak
Zadatak iz stvarnog života: korištenjem ACL osmislite način da troje korisnika, domargan, iivakic i vedranm,dijelite jedan direktorij. Svaki od njih mora biti u mogućnosti u njemu stvarati datoteke i direktorije koje moraju kod stvaranja dobiti dozvolu čitanja i pisanja za sve troje.
Pitanja za ponavljanje
- Što je informacijski čvor?
- Objasnite razliku između različitih timestamp-ova u informacijskom čvoru.
- Opišite način i svrhu korištenja čvrstih i simboličkih poveznica. Prisjetite se poglavlja o relativnom i apsolutnom referenciranju.
- Čemu služe dozvole?
- Što čini način pristupa (engl. mode)?
- Prisjetite se razlike između oktalnog i simboličkog zapisa kod naredbe
chmod. - Detaljno objasnite pojam korisničke maske. Potkrijepite konkretnim primjerima.
- Što je ACL i čemu služi? Opišite kroz primjer.
Osnovni i prošireni atributi datoteka
-
atributi su svojstva datoteka, slični atributima na datotečnom sustavu FAT (archive, directory, hidden, read-only, system i volume)
- Linux ih podržava, ali ne koriste se često
-
dvije vrste atributa
- mogu se mijenjati: append only (a), compressed (c), no dump (d), extent format (e), immutable (i), data journalling (j), secure deletion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), top of directory hierarchy (T).
- mogu se samo čitati: huge file (h), compression error (E), indexed directory (I), compression raw access (X), compressed dirty file (Z)
-
lsattrizlistava trenutne atribute datoteka chattrmijenja atribute datoteka
ToDo
Ovdje nedostaje zadatak.
-
prošireni atributi (engl. extended attributes)
- naredbe
getfattrisetfattr - opisani u
attr(5)
- naredbe
ToDo
Ovdje nedostaje objašnjenje i zadatak.
Author: Vedran Miletić, Vanja Slavuj, Sanja Pavkov