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
rootmož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 |