bitlvl
SR

Podsetnik za chmod i dozvole

Ceo sistem dozvola staje na jednu stranicu. Odštampajte je, ili držite otvoren chmod kalkulator za sve interaktivno.

Staje na jednu uspravnu A4 / Letter stranicu; u prozoru za štampu izaberite „Sačuvaj kao PDF“ da biste zadržali kopiju.

Čitanje dozvola

-rwxr-xr-xtip, vlasnik rwx, grupa r-x, ostali r-x
r = 4, w = 2, x = 1saberite po grupi → oktalna cifra
rwx r-x r-x= 7 5 5 = 755
d l c b p sdirektorijum, simbolički link, znakovni uređaj, blok uređaj, pipe, socket

Uobičajeni modovi

644datoteke: vlasnik rw, svi r
755direktorijumi, skripte, binarne datoteke
600 / 700privatna datoteka / direktorijum (SSH ključevi, .env, ~/.ssh)
664 / 775datoteka / direktorijum sa pisanjem za grupu
2775deljeni direktorijum: nove datoteke nasleđuju grupu (setgid)
1777/tmp: svako piše, samo vlasnici brišu (sticky)
4755setuid binarna datoteka (passwd, sudo)
777gotovo uvek pogrešno

Simbolički chmod

u g o akorisnik (vlasnik), grupa, ostali, svi
+ - =dodaj, ukloni, postavi tačno
chmod u+x fvlasnik sme da izvršava
chmod go-w fgrupa i ostali gube pisanje
chmod a=r fsvi samo čitanje
chmod u=rwx,g=rx,o= f= 750
chmod -R u=rwX,go=rX dirrekurzivno; X = izvršavanje samo za direktorijume i već izvršne datoteke
chmod g+s dirsetgid na direktorijumu
chmod +t dirsticky bit
chmod --reference=a bkopiraj mod od a na b

Specijalni bitovi (vodeća oktalna cifra)

4 setuidpokreće se kao vlasnik datoteke; prikazuje se kao s na vlasnikovom x
2 setgidpokreće se kao grupa; na direktorijumima: nasleđivanje grupe; s na x grupe
1 stickyu direktorijumima: samo vlasnik sme da briše; t na x ostalih
S / Tveliko slovo = specijalni bit postavljen bez izvršavanja (obično greška)

Vlasništvo

chown user filepromeni vlasnika (samo root)
chown user:group filevlasnik i grupa
chown -R www-data: /var/wwwrekurzivno; prazna grupa = korisnikova login grupa
chgrp group filesamo grupa (član može da uradi)
chown -hpromeni sam simbolički link, a ne odredište

umask

umask 022datoteke 644, direktorijumi 755 (podrazumevano)
umask 077datoteke 600, direktorijumi 700 (privatno)
umask 002datoteke 664, direktorijumi 775 (grupni rad)
UMask=0077u systemd [Service] sekciji

Pronalaženje i popravka

find . -type f -perm -o+wdatoteke u koje svi mogu da pišu
find / -perm -4000 -type fsetuid binarne datoteke
find . -type d -exec chmod 755 {} +popravi samo direktorijume
find . -type f -exec chmod 644 {} +popravi samo datoteke
stat -c '%a %U %G %n' *oktalni mod, vlasnik, grupa, ime
ls -ld dirsam direktorijum, a ne njegov sadržaj

ACL (kada rwx nije dovoljno)

getfacl fileprikaži; + u ls -l znači da postoji
setfacl -m u:alice:rw filedaj alice rw
setfacl -m d:g:dev:rwx dirpodrazumevani ACL za nove datoteke u dir
setfacl -b fileukloni sve ACL-ove

Zapamtite

  • Direktorijum x = može se ući; r = može se izlistati; w = mogu se praviti/brisati stavke.
  • Brisanje datoteke zahteva w na direktorijumu, a ne na datoteci.
  • root ignoriše rwx (ali ne i bit za izvršavanje pri pokretanju).
  • „Permission denied“ je često vlasništvo; proverite ls -l pre chmod 777.

Rezultati i poruke ovog alata prikazuju se na engleskom.

Pitanja

Kako da bezbedno popravim ceo veb root?

find /var/www -type d -exec chmod 755 {} + i find /var/www -type f -exec chmod 644 {} +, zatim chown -R www-data: /var/www. Nikad chmod -R 777.