bitlvl
SR

chmod kalkulator

Štiklirajte polja ili ukucajte oktalni broj, rwx string ili simboličku izmenu poput u+x,go-w. Komanda i značenje se ažuriraju dok kucate.

Dozvole
Čitanje (4)
Pisanje (2)
Izvršavanje (1)
Vlasnik
Grupa
Ostali

Rezultati i poruke ovog alata prikazuju se na engleskom.

Kako rade Unix dozvole

Svaka datoteka ima tri skupa od po tri bita dozvola: za vlasnika datoteke, za njenu grupu i za sve ostale. Svaki skup može da dozvoli čitanje (r, vrednost 4), pisanje (w, 2) i izvršavanje (x, 1). Saberite vrednosti u svakom skupu i dobijate jednu oktalnu cifru, zato se dozvole pišu kao tri cifre: rwxr-xr-x je 4+2+1, 4+1, 4+1 = 755.

Za direktorijume isti bitovi znače nešto drugačije: čitanje izlistava stavke, pisanje pravi i briše stavke, a izvršavanje dozvoljava ulazak u direktorijum i pristup datotekama u njemu. Direktorijum bez x je neupotrebljiv čak i sa r.

Specijalni bitovi

Četvrta, vodeća cifra sadrži još tri bita. setuid (4) čini da se izvršna datoteka pokreće kao njen vlasnik, i zato passwd može da menja datoteku čiji je vlasnik root. setgid (2) radi isto za grupu, a na direktorijumu čini da nove datoteke naslede grupu direktorijuma, što je upravo ono što deljeni projektni folderi traže. sticky (1) na direktorijumu sprečava korisnike da brišu tuđe datoteke; /tmp je 1777.

Simbolički režim

chmod prihvata i izmene umesto apsolutnih vrednosti: u+x dodaje izvršavanje vlasniku, go-w uklanja pisanje grupi i ostalima, a=r postavlja svima samo čitanje. X (veliko) dodaje izvršavanje samo direktorijumima i datotekama koje ga već negde imaju, zbog čega je chmod -R a+rX bezbedan način da otvorite stablo za čitanje.

umask

Nove datoteke počinju od 666, a direktorijumi od 777, umanjeno za umask. Uobičajeni umask 022 daje 644 i 755; 077 daje 600 i 700 (privatno). umask bez argumenta prikazuje trenutnu vrednost.

Uobičajene vrednosti

OktalnoSimboličkiUpotreba
644rw-r--r--Obične datoteke, veb sadržaj
755rwxr-xr-xIzvršne datoteke, skripte, direktorijumi
600rw-------Privatni ključevi, .env, datoteke sa lozinkama
700rwx------~/.ssh i drugi privatni direktorijumi
664 / 775rw-rw-r-- / rwxrwxr-xDatoteke / direktorijumi za zajednički rad u grupi
2775rwxrwsr-xDeljeni direktorijum sa nasleđivanjem grupe
1777rwxrwxrwt/tmp
4755rwsr-xr-xsetuid programi kao što su passwd, sudo

Pitanja

Šta znači chmod 755?

Vlasnik može da čita, piše i izvršava; grupa i ostali mogu da čitaju i izvršavaju. To je uobičajeni režim za programe, skripte i direktorijume.

Šta radi chmod 777 i zašto je loš?

Dozvoljava svakom korisniku na sistemu da čita, piše i izvršava datoteku. Na deljenoj mašini ili onoj izloženoj internetu to znači da bilo ko, uključujući kompromitovani servis, može da je izmeni. Gotovo nikad nije pravo rešenje za grešku sa dozvolama; obično su to vlasništvo (chown) ili 755/644.

Zašto moja skripta javlja „permission denied“?

Nedostaje joj bit za izvršavanje. Pokrenite chmod +x script.sh (ili 755). Ako se nalazi na sistemu datoteka montiranom sa noexec, ili shebang linija pokazuje na nepostojeći interpreter, dobijate istu poruku.

Šta znače s ili t u ls -l?

Malo s na poziciji izvršavanja vlasnika ili grupe znači da je setuid ili setgid postavljen zajedno sa izvršavanjem; veliko S znači da je specijalni bit postavljen bez izvršavanja (obično greška). t i T su isto za sticky bit. Nalepite string u simboličko polje da ga dekodirate.

Koja je razlika između chmod i chown?

chmod menja bitove dozvola; chown menja koji korisnik i grupa poseduju datoteku. Mnogi problemi „permission denied“ su problemi vlasništva: bitovi su ispravni, ali za pogrešnog korisnika.

Kako da postavim dozvole rekurzivno?

chmod -R. Da ne biste svaku datoteku učinili izvršnom, koristite chmod -R u=rwX,go=rX dir, gde veliko X primenjuje izvršavanje samo na direktorijume i već izvršne datoteke.