Gym
lesson

Razumevanje dozvola

Cilj lekcije: Naučiti kako Linux kontroliše pristup fajlovima i direktorijumima, razumeti rwx notaciju, tri nivoa pristupa i oktalnu notaciju.


Zašto postoje dozvole?

Na Linux sistemu sa više korisnika, potreban je mehanizam koji određuje ko šta sme da radi sa svakim fajlom. Bez dozvola, svaki korisnik bi mogao da čita, menja ili briše fajlove svih ostalih — što bi bio bezbednosni haos.

Linux koristi jednostavan ali moćan sistem dozvola zasnovan na tri vrste pristupa i tri nivoa ko ih ima.


Tri vrste dozvola (rwx)

Svaki fajl ili direktorijum ima tri moguće dozvole:

Simbol Naziv Vrednost Značenje za fajl Značenje za direktorijum
r read 4 Čitanje sadržaja fajla Listanje sadržaja (ls)
w write 2 Izmena sadržaja fajla Kreiranje i brisanje fajlova
x execute 1 Izvršavanje fajla kao programa Ulaz u direktorijum (cd)
- (ništa) 0 Dozvola nije dodeljena Dozvola nije dodeljena

Važno za direktorijume: Dozvola x na direktorijumu ne znači "izvršavanje" već pristup — bez nje, ne možeš cd u direktorijum čak i ako imaš r.


Tri nivoa ko ima dozvole

Linux organizuje ko ima koje dozvole u tri grupe:

Nivo Naziv Opis
u user (vlasnik) Korisnik koji je vlasnik fajla
g group (grupa) Korisnici koji su u grupi fajla
o others (ostali) Svi ostali korisnici sistema

Svaki fajl ima tačno jednog vlasnika i jednu grupu. Dozvole se proveravaju redom: ako si vlasnik — primenjuju se u dozvole. Ako si u grupi — primenjuju se g dozvole. Inače — o dozvole.


Čitanje ls -l izlaza

Komanda ls -l prikazuje detaljne informacije o fajlovima, uključujući dozvole:

ls -l
-rwxr-xr-- 1 student projekat 4096 Apr 13 12:00 skripta.sh
drwxr-x--- 2 student projekat 4096 Apr 13 11:30 podaci/
-rw-r--r-- 1 student student   256 Apr 13 10:00 beleska.txt
-rw------- 1 student student   512 Apr 13 09:00 privatno.txt

Anatomija jedne linije

-rwxr-xr-- 1 student projekat 4096 Apr 13 12:00 skripta.sh
^^^^^^^^^^ ^ ^^^^^^^ ^^^^^^^^
|          | |       |
|          | |       +-- Ime grupe
|          | +---------- Ime vlasnika
|          +------------ Broj hard linkova
+----------------------- Tip fajla + dozvole (10 znakova)

Prvih 10 znakova — tip i dozvole

- r w x r - x r - -
^ ^^^ ^^^ ^^^
| |   |   |
| |   |   +-- Dozvole za ostale (others)
| |   +------ Dozvole za grupu (group)
| +---------- Dozvole za vlasnika (user)
+------------ Tip fajla

Tip fajla:

  • - : običan fajl
  • d : direktorijum
  • l : simbolički link
  • b : blok uređaj
  • c : karakterni uređaj

Primeri čitanja

Dozvole Vlasnik Grupa Ostali Opis
-rwxr-xr-- rwx r-x r-- Vlasnik sve, grupa čita+izvršava, ostali samo čitaju
-rw-r--r-- rw- r-- r-- Tipičan tekstualni fajl (644)
-rw------- rw- --- --- Privatni fajl, samo vlasnik (600)
drwxr-xr-x rwx r-x r-x Tipičan direktorijum (755)
drwx------ rwx --- --- Privatni direktorijum (700)

Oktalna notacija

Oktal = brojevni sistem sa ciframa 0-7. U dozvolama, svaka cifra (0-7) predstavlja kombinaciju rwx. NE moras razumeti oktal kao matematiku — samo prepoznaj cesto koriscene vrednosti iz tabele ispod.

Svaka dozvola ima numeričku vrednost: r=4, w=2, x=1. Saberi vrednosti za svaki nivo pristupa da dobiješ oktalnu vrednost.

Kako izračunati

r w x
4 2 1
Kombinacija Računanje Oktalni broj
rwx 4+2+1 7
rw- 4+2+0 6
r-x 4+0+1 5
r-- 4+0+0 4
-wx 0+2+1 3
-w- 0+2+0 2
--x 0+0+1 1
--- 0+0+0 0

Ceo oktal: tri cifre za u, g, o

rwxr-xr--
^^^  ^^^  ^^^
 7    5    4    →  754
rw-r--r--
^^^  ^^^  ^^^
 6    4    4    →  644

Najčešće korišćene oktalne vrednosti

Oktal Simbolički Tipična upotreba
755 rwxr-xr-x Izvršni programi, javni direktorijumi
644 rw-r--r-- Obični tekstualni fajlovi
600 rw------- Privatni fajlovi (SSH ključevi, lozinke)
700 rwx------ Privatni direktorijumi
664 rw-rw-r-- Zajednički fajlovi za grupu
775 rwxrwxr-x Zajednički direktorijumi za grupu
777 rwxrwxrwx Potpuno otvoreno (izbegavati!)

Upozorenje: chmod 777 je gotovo uvek loša ideja — daje svima na sistemu punu kontrolu nad fajlom ili direktorijumom. Koristi što restriktivnije dozvole koje ti zadatak dozvoljava.


Primer — šta se dešava bez x na direktorijumu

ls -ld /home/alice/
# drw-r--r-- 2 alice alice 4096 Apr 13 12:00 /home/alice/

# Pokušaj ulaska:
cd /home/alice/
# bash: cd: /home/alice/: Permission denied

# Čak i ls ne radi bez x:
ls /home/alice/
# ls: cannot access '/home/alice/': Permission denied

Čak i ako imaš r na direktorijumu, bez x ne možeš pristupiti sadržaju.


Rezime

  • Tri dozvole: r (čitanje, 4), w (pisanje, 2), x (izvršavanje, 1)
  • Tri nivoa: u (vlasnik), g (grupa), o (ostali)
  • Oktal = saberi r+w+x za svaki nivo: 755, 644, 600
  • Na direktorijumima, x znači pristup/ulaz, ne izvršavanje
  • Čitaj ls -l: prvih 10 znakova = tip + dozvole za u, g, o