Exemple de permisiuni chmod
Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.
chmod 644 index.php
chmod u=rw,g=r,o=r index.php
# ls -l afișează: -rw-r--r--
chmod 755 wp-content/
chmod u=rwx,g=rx,o=rx wp-content/
# ls -l afișează: drwxr-xr-x
chmod 600 ~/.ssh/id_ed25519
chmod u=rw,g=,o= ~/.ssh/id_ed25519
# ls -l afișează: -rw-------
chmod 640 wp-config.php
chmod u=rw,g=r,o= wp-config.php
# ls -l afișează: -rw-r-----
chmod 2775 proiect/
chmod u=rwx,g=rwx,o=rx,g+s proiect/
# ls -l afișează: drwxrwsr-x
find /var/www/site -type d -exec chmod 755 {} +
find /var/www/site -type f -exec chmod 644 {} +
Cum folosești calculatorul chmod
- Bifează în tabel drepturile pentru Proprietar, Grup și Alții, plus, dacă e nevoie, biții speciali setuid, setgid și sticky.
- Sau scrie direct Modul numeric (
755,0644,4755) ori forma simbolică (rwxr-xr-x,u+x,go-w). Celelalte câmpuri se actualizează singure. - Scrie numele fișierului sau folderului și copiază comanda. Calculul se face în browser.
Cum se citesc cifrele
Fiecare cifră este suma a trei drepturi: citire = 4, scriere = 2, execuție = 1. Prima cifră e pentru proprietar, a doua pentru grup, a treia pentru ceilalți. Așa, 7 = 4 + 2 + 1 (totul), 5 = 4 + 1 (citire și execuție), 6 = 4 + 2 (citire și scriere).
chmod 644 index.php # -rw-r--r-- fișiere
chmod 755 wp-content/ # drwxr-xr-x foldere
chmod 600 ~/.ssh/id_ed25519 # doar tu poți citi cheia
find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +
La un folder, x înseamnă dreptul de a intra în el și de a ajunge la fișierele din interior, iar r doar dreptul de a lista numele. De aceea folderele au de obicei 755, iar fișierele 644.
WordPress și 777
Pentru WordPress, recomandarea obișnuită este 755 pentru foldere și 644 pentru fișiere. Fișierul wp-config.php poate fi strâns la 640, 440 sau 400, ca să nu îl citească alți utilizatori de pe server; verifică întâi că serverul web îl poate citi în continuare. 777 permite oricui de pe server să modifice fișierele: dacă un modul cere asta, problema reală e de obicei proprietarul fișierelor, nu permisiunile.
Biții speciali
Al patrulea bit stă în fața celor trei cifre: 4 = setuid, 2 = setgid, 1 = sticky. 1777 este modul folderului /tmp: toți pot crea fișiere, dar fiecare le poate șterge doar pe ale lui. În forma simbolică, u=, g= și o= rescriu drepturile rwx, iar biții speciali se pun separat cu u+s, g+s și +t.
Întrebări frecvente
De ce SSH refuză cheia mea privată?
Dacă fișierul cheii poate fi citit și de alții, clientul OpenSSH îl ignoră cu avertismentul UNPROTECTED PRIVATE KEY FILE. Rulează chmod 600 pe fișierul cheii.
Ce înseamnă un S sau T mare în ls -l?
Bitul special e pus, dar lipsește dreptul de execuție de sub el. La setuid și setgid asta înseamnă de obicei că bitul nu are efect.