Dozvole

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Administrator
Administrator
offline
User avatar

Posts: 877
Joined: 25 May 2008, 10:44
Location: Valjevo, Srbija

Post Napisano: 27 Feb 2012, 18:37


Bez obzira na to koliko dobro se snalazite na nekom Linux sistemu, koji nivo znanja posedujete, kad-tad ćete doći u situaciju da se detaljnije pozabavite problemom dozvola. Dozvole pokazuju ko ima pristup fajlovima i folderima na sistemu i koja prava nad njima ima.

Korisnici (vrste)
u - vlasnik
g - grupa koja ima prava vlasništva
o - ostali (koji nisu ni vlasnik niti pripadaju vlasničkoj grupi)
a - svi korisnici

Dozvole (vrste)
r - read (čitanje)
w - write (pisanje, brisanje, izmena)
x - execute (pokretanje)

Primer 1 - folder pod nazivom "priprema" sa odgovarajućim dozvolama

Code: Select all

drwxrwx---  1 root users      24576 Dec 17 22:55 priprema
Dozvole nekog foldera mogu se razložiti na sledeći način:

Code: Select all

d (tri oznake) (tri oznake) (tri oznake)
U ovom slučaju je to

Code: Select all

d rwx rwx ---
Redom, s leva na desno, značenje je sledeće:

d - označava tip elementa (u ovom slučaju je to directory - folder)
rwx - dozvole vlasnika (uvek su prve tri oznake dozvole vlasnika fajla/foldera)
rwx - dozvole grupe
--- dozvole ostalih (koji ne spadaju u grupu kojoj se definišu prava i nisu vlasnici)

Kad slova pretvorimo u brojeve...
r - 4
w - 2
x - 1

rwx = 7 (4+2+1)

U ovom primeru folder ima 770 dozvole. Šta to znači? Vraćamo se na deo gde smo to sve razdvojili...
rwx - dozvole vlasnika (uvek su prve tri oznake dozvole vlasnika fajla/foldera) 4+2+1 = 7
rwx - dozvole grupe 4+2+1 = 7
--- dozvole ostalih (koji ne spadaju u grupu kojoj se definišu prava i nisu vlasnici) 0+0+0 = 0
Vlasnik (u ovom primeru root) ima sva tri navedena prava - čitanje, pisanje i izvršavanje (rwx)
Grupa (u ovom primeru users) ima sva tri navedena prava - čitanje, pisanje i izvršavanje (rwx)
Ostali nemaju ni jedno od navedenih prava - čitanje, pisanje i izvršavanje (- - -)

Primer 2 - fajl pod nazivom "test.jpg" sa odgovarajućim dozvolama

Code: Select all

-rwxrw----  2 root users    3011195 Nov 12 15:38 test.jpg
Napomena: Prva oznaka (-) je oznaka tipa elementa (kao što je d u primeru 1) i nemojte da vas to zbuni :)

vlasnik (root) ima rwx 4+2+1 = 7
grupa (users) ima rw (samo čitanje i pisanje ne i izvršavanje) 4+2+0 = 6
ostali (svi koji ne spadaju u users grupu) nemaju ni jedno od navedenih prava (- - -) 0+0+0 = 0

Dakle oktalna oznaka je 760.

Kako promeniti dozvole nekog objekta?

Odgovor je prilično jednostavan. Koristi se posebna komanda - chmod. Pomoću ove komande možete menjati dozvole nekog objekta unošenjem željene oktalne vrednosti ili definisanjem pojedinačnih parametara.

Primer 3 - promena dozvola unošenjem odgovarajućih oktalnih vrednosti

Ako želite da na folderu iz primera 1 omogućite čitanje korisnicima koji ne pripadaju vlasničkoj grupi, i istovremeno da ukinete izvršavanje korisnicima koji pripadaju vlasničkoj grupi (svima osim vlasniku objekta) prvo treba da izračunate oktalnu vrednost željenih dozvola. Za potrebe ovog primera iskoristićemo sliku.
dozvole.jpg
Oktalna vrednost je:
rwx = 7 (4 + 2 + 1)
rw- = 6 (4 + 2 + 0)
r-- = 4 (4 + 0 + 0)

Komanda kojom vršimo promenu prava je:

Code: Select all

chmod 764 priprema
Nakon izvršavanja ove komande dobijamo sledeće:

Code: Select all

drwxrw-r--  1 root users      24576 Dec 17 23:10 priprema
Opšti ove komande je:

Code: Select all

chmod (oktalna vrednost) naziv_objekta
Primer 4 - promena dozvola unošenjem odgovarajućih vrednosti vrste vlasnika i vrste dozvola

Uzmimo npr fajl test.jpg (iz primera 2).
Ako želite da dodate pravo izvršavanja grupi koja je vlasnik ovog fajla, to možete uraditi na sledeći način:

Code: Select all

chmod g+x test.jpg
Ako želite da oduzmete pravo pisanja svim korisnicima, to možete uraditi na sledeći način:

Code: Select all

chmod a-w test.jpg
Dakle, opšti obrazac komande u ovom slučaju je

Code: Select all

chmod (vrsta korisnika)(dodavanje/oduzimanje)(vrsta dozvole) naziv_objekta
Vrstu korisnika (u pogledu vlasništva) i vrstu dozvole potražite u mini tabelama na samom početku ovog teksta

Maske
Ako koristite NTFS particije na svom sistemu, sigurno ste se sreli sa problemom manipulacije sadržajem koji se na njima nalazi. Zašto se problem uopšte javlja? Slackware (Linux u globalu) za rw pristup (koji omogućava i čitanje i pisanje po particijama) koristi FUSE u kombinaciji sa ntfs-3g drajverom. Prilikom svakog pokretanja se particija montira na odgovarajuću lokaciju i ponovo se postavljaju odgovarajuće dozvole za pristup ovim particijama (promena nije permanentna). Podrazumevano, veliki broj sistema montira NTFS particije sa parametrom "defaults" a to podrazumeva 777 dozvole na fajlovima i folderima. To znači da svi korisnici imaju sva tri prava o kojima smo pričali - čitanje, pisanje, pokretanje...Da li je to ono što želite? Ako nije, dozvole morate uneti u fstab fajl koji je na Linux sistemima zadužen za montiranje particija prilikom startovanja sistema (bez obzira da li je u pitanju sistemska ili nesistemska particija). Kako da postavimo odgovarajuće dozvole? E, tu na scenu stupaju maske - umask oznake. Dakle, morate uneti odgovarajuće umask oznake kako bi definisali ko koja prava ima nad odabranim particijama/diskovima.

fmask - fajl maska
dmask - folder maska

Primer 5 - NTFS particija koja je fstab fajlu podešena da se montira sa defaults parametrom (777 dozvole za sve objekte)

Code: Select all

/dev/sda5        /media/podaci    ntfs-3g     defaults   1   0
Kako dobijamo odgovarajući umask koji ćemo upotrebiti? Ovaj broj dobijamo kada od 777 oduzmemo odgovarajuću brojčanu oznaku prava nad nekim elementom.

Ako želimo da nam na nekoj particiji svi folderi imaju 770 oznaku (kao u primeru 1) to ćemo izračunati na sledeći način:

Code: Select all

777-770 = 007
znači, potrebna vrednost za dmask je 007. U fstab to unosimo kao dmask=007

Ako želimo da nam na nekoj particiji svi fajlovi imaju 760 oznaku (kao u primeru 2) to ćemo izračunati na sledeći način:

Code: Select all

777-760 = 017
znači, potrebna vrednost za fmask je 017. U fstab to unosimo kao fmask=017

Kako sada izgleda primer 5?

Code: Select all

/dev/sda5        /media/podaci    ntfs-3g     fmask=017,dmask=007   1   0
Promene će biti vidljive nakon restarta računara ili posle demontiranja/montiranja svih particija koje su u upotrebi.

Prilikom računanja uvek polazite od toga koje vam dozvole trebaju. Na način koji je opisan prvo izračunate oktalnu vrednost željenih dozvola (rwx), a potom dobijeni broj oduzmete od 777. Dobijena vrednost se upotrebljava kao dmask (ako su u pitanju folderi) ili fmask ako su u pitanju fajlovi.
Last edited by drummer on 27 Feb 2012, 23:12, edited 4 times in total.
Reason: ispravljeni uočeni nedostaci...sređeno formatiranje članka



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 2168
Joined: 08 Jun 2010, 13:28
Location: Centralna Srbija Kraljevo
Contact:

Post Napisano: 28 Feb 2012, 07:13


Hvala. Imao sam i ranije čast da vidim deo ovog odličnog How Toa. :beer:
Nije to ni važno, nego sam ga shatio na prvu, e to itekako jeste važno.
Tako se piše How To. :beer:



Poznata ličnost
Poznata ličnost
offline

Posts: 100
Joined: 04 Jun 2010, 06:28

Post Napisano: 28 Feb 2012, 09:27


Lepo. da se podsetim i naucim jos : )



Prijatelj foruma
Prijatelj foruma
offline
User avatar

Posts: 1053
Joined: 18 Feb 2012, 15:14
Location: Despotovac
Contact:

Post Napisano: 28 Feb 2012, 10:23


Pohvale, @drummer. Sačuvao sam sinoć celu stranu kao PDF, da se nađe :)


Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests