Dozvole

Dozvole

offline
  • Rade Jekić
  • Pridružio: 05 Okt 2005
  • Poruke: 3005
  • Gde živiš: Valjevo

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
drwxrwx---  1 root users      24576 Dec 17 22:55 priprema
Dozvole nekog foldera mogu se razložiti na sledeći način:
d (tri oznake) (tri oznake) (tri oznake)
U ovom slučaju je to
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 kojoj pripada vlasništvo nad objektom
--- dozvole ostalih (koji ne spadaju u grupu koja ima pravo vlasništva i nisu vlasnik)

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...
Citat: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
-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 Smile

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.



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:
chmod 764 priprema
Nakon izvršavanja ove komande dobijamo sledeće:
drwxrw-r--  1 root users      24576 Dec 17 23:10 priprema
Opšti ove komande je:
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:
chmod g+x test.jpg
Ako želite da oduzmete pravo pisanja svim korisnicima, to možete uraditi na sledeći način:
chmod a-w test.jpg
Dakle, opšti obrazac komande u ovom slučaju je
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)
/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:
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:
777-760 = 017
znači, potrebna vrednost za fmask je 017. U fstab to unosimo kao fmask=017

Kako sada izgleda primer 5?
/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.

autor: Rade Jekić (drummer)
članak izvorno napisan i objavljen na forumu Slackware Srbija zajednice
Arrow http://slackware-srbija.org/forum/viewtopic.php?f=38&t=1254



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Brok  Male
  • Moderator foruma
  • Mihajlo Bogdanović
  • Linux driver - fighter - warrior
  • Pridružio: 04 Maj 2005
  • Poruke: 3246

Ovo je lekcija ne samo o dozvolama već kako treba pisati How To.
Od Drummera drugo i nije bilo za očekivati. Ziveli



offline
  • Uroš Ilić
  • dr stom.
  • Pridružio: 08 Jul 2006
  • Poruke: 2182
  • Gde živiš: Beograd

Odličan tutorijal, svaka čast kolega i hvala za ovo! Ziveli

offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 16586

Znaci 3 ga puta citam, svaka recenica na svom mestu. Nema viskova, koncizno, lepo formatirano i sredjeno.

Eh da ja tako znam, ne bih filozofirao unaokolo pa svaki clanak ispade 20-ak strana Mr. Green

Svaka cast - odlican je clanak ! Ziveli

offline
  • Brok  Male
  • Moderator foruma
  • Mihajlo Bogdanović
  • Linux driver - fighter - warrior
  • Pridružio: 04 Maj 2005
  • Poruke: 3246

Kako bi išla promena dozvole sa ove micro sd kartice.

Njena sadašnja dozvola je
drwx------  4 broker broker 32768 1970-01-01 01:00 0000-14FA
što je 700 ako se ne varam a treba mi 777.
Evo izlaza fdisk -l
Disk /dev/sdb: 8031 MB, 8031043584 bytes
255 heads, 63 sectors/track, 976 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         977     7842784+   c  W95 FAT32 (LBA)
Partition 1 has different physical/logical endings:
     phys=(976, 254, 63) logical=(976, 98, 18)

I izlaz mount
/dev/sdb1 on /media/0000-14FA type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush)

da li možda treba da dodam u fstabu /dev/sdb1 pa da mu zadam fmask i umask vredosti?
Znao sam ovo ali se zaboravlja, samo je u pitanju bio usb stick a ne micro sd.

Ko je trenutno na forumu
 

Ukupno su 863 korisnika na forumu :: 30 registrovanih, 7 sakrivenih i 826 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Atomski čoban, babaroga, Bane san, Battlehammer, bokisha253, dane007, esx66, FileFinder, Fog of War, FOX, GandorCC, goxin, Ivan001, ivan1973, kovinacc, Kriglord, Leonov, Lieutenant, Marko Marković, Metanoja, Mi lao shu, milenko crazy north, Milometer, Milos ZA, mocnijogurt, raketaš, RJ, sasa87, Sirius, stegonosa