Gym
lesson

Promena dozvola i vlasništva

Cilj lekcije: Savladati komande chmod, chown i chgrp za menjanje dozvola i vlasništva fajlova i direktorijuma, uključujući rekurzivnu primenu.


chmod — promena dozvola

Komanda chmod (change mode) menja dozvole fajla ili direktorijuma. Možeš je koristiti na dva načina: simbolički i oktalni.

Simbolički način

Simbolički način je čitljiviji i praktičan za male izmene. Sintaksa:

chmod [kome][operator][šta] fajl

Kome:

  • u — vlasnik (user)
  • g — grupa (group)
  • o — ostali (others)
  • a — svi (all = u+g+o)

Operator:

  • + — dodaj dozvolu
  • - — ukloni dozvolu
  • = — postavi tačno (zameni)

Šta:

  • r, w, x

Primeri simboličkog načina

# Dodaj pravo izvršavanja vlasniku
chmod u+x skripta.sh

# Ukloni pravo pisanja grupi
chmod g-w dokument.txt

# Postavi ostale da mogu samo čitati
chmod o=r javno.txt

# Dodaj x svima
chmod a+x pokretac.sh

# Vlasniku sve, grupi čitanje, ostalima ništa
chmod u=rwx,g=r,o= privatno.sh

# Ukloni sve x dozvole sa fajla
chmod a-x konfig.txt

Oktalni način

Oktalni način je kompaktan i brz — pogotovo kada postavljaš sve dozvole odjednom:

chmod 755 skripta.sh
chmod 644 dokument.txt
chmod 600 privatni-kljuc.pem
chmod 700 privatni-dir/

Kombinovanje: česta upotreba

# Web server statički fajlovi: vlasnik piše, svi čitaju
chmod 644 /var/www/html/index.html

# Web server direktorijumi
chmod 755 /var/www/html/

# Zaštita konfiguracije (samo root čita)
chmod 600 /etc/app/database.conf

# Skripta koja se može pokrenuti
chmod 755 /usr/local/bin/moja-skripta.sh

chmod -R — rekurzivna promena

Opcija -R primenjuje promenu na direktorijum i sve fajlove i poddirektorijume unutar njega:

# Postavi 755 na sve u /var/www/html/ rekurzivno
chmod -R 755 /var/www/html/

# Ukloni write od ostalih na celom projektu
chmod -R o-w ~/projekat/

Pažnja: chmod -R 777 . je veoma opasna komanda — daje svima potpun pristup svemu. Uvek razmisli pre rekurzivne promene.


chown — promena vlasnika

Komanda chown (change owner) menja vlasnika fajla. Može da promeni i vlasnika i grupu odjednom.

Osnovna sintaksa

chown novi_vlasnik fajl
chown novi_vlasnik:nova_grupa fajl

Primeri

# Promeni vlasnika na alice
chown alice dokument.txt

# Promeni vlasnika i grupu istovremeno
chown alice:projekat dokument.txt

# Promeni samo grupu (ostavi vlasnika)
chown :projekat dokument.txt

chown -R — rekurzivno

# Preda sve fajlove u /opt/app korisniku webapp
chown -R webapp:webapp /opt/app/

Napomena: Samo root može da menja vlasnika fajla. Obični korisnik može da menja grupu fajla koji poseduje, ali samo na grupu kojoj sam pripada.


chgrp — promena grupe

Komanda chgrp (change group) menja samo grupu fajla, bez promene vlasnika:

chgrp nova_grupa fajl
chgrp -R nova_grupa direktorijum/

Primer

# Promeni grupu projekta na tim
chgrp -R tim /opt/projekat/

# Ekvivalentno sa chown:
chown :tim /opt/projekat/

Prakticno pravilo

  • Fajl koji treba da se POKRENE (skripta, program) → 755
  • Fajl koji se samo CITA (tekst, dokument) → 644
  • Fajl sa LICNIM podacima (lozinke, ssh kljucevi) → 600
  • Direktorijum u koji ulazis → mora imati x — obicno 755

Simbolički način je bolji za male izmene (dodaj/ukloni jednu dozvolu). Oktalni je bolji kada postavljaš sve dozvole odjednom.


Rezime

Komanda Opis
chmod 755 fajl Postavi dozvole oktalnim načinom
chmod u+x fajl Dodaj execute vlasniku (simbolički)
chmod -R 644 dir/ Rekurzivno postavi 644
chown korisnik fajl Promeni vlasnika
chown korisnik:grupa fajl Promeni vlasnika i grupu
chgrp grupa fajl Promeni samo grupu
chown -R korisnik dir/ Rekurzivno promeni vlasnika