chmod în Linux / Bash

Permisiuni și securitate POSIX / GNU Coreutils

Schimbă drepturile de acces (citire, scriere, execuție) pentru utilizator, grup și ceilalți.

Sintaxă comandă
chmod [opțiuni] mod fișier...

Ce face chmod

Numele chmod provine de la change mode. Permite configurarea celor 3 permisiuni fundamentale: r (read / citire = 4), w (write / scriere = 2) și x (execute / execuție = 1).

Permisiunile pot fi specificate în format octal (ex. 755: 7 pentru proprietar, 5 pentru grup, 5 pentru alții) sau în format simbolic (ex. u+x adaugă drept de execuție pentru proprietar).

Opțiuni și argumente

Opțiune / Parametru Descriere
-R, --recursive Aplică modificările recursiv pe toate fișierele și subdirectoarele.
MOD octal (ex. 755, 644) Trei cifre reprezentând suma permisiunilor: citire (4) + scriere (2) + execuție (1).
MOD simbolic (u, g, o, a) u (user/proprietar), g (grup), o (others/ceilalți), a (all/toți), urmate de +, - sau = și literele r,w,x.
-v, --verbose Raportează fiecare modificare efectuată.

Exemple

Exemplul 1: Adăugarea permisiunii de execuție unui script

Fără dreptul +x, un script Bash nu poate fi lansat direct cu ./script.sh.

echo 'echo "Rulez"' > script.sh
chmod +x script.sh
ls -l script.sh | awk '{print $1}'

Rezultat

-rwxr-xr-x@

Exemplul 2: Setarea permisiunilor standard pentru fișiere web

Fișierele obișnuite primesc 644 (rw-r–r–), iar directoarele 755 (rwxr-xr-x).

touch pagina.html
chmod 644 pagina.html
ls -l pagina.html | awk '{print $1}'

Rezultat

-rw-r--r--@

Greșeli frecvente

  • Folosirea comenzii chmod 777 pe servere de producție; acordarea de drepturi universale de scriere oricărui utilizator reprezintă o vulnerabilitate majoră de securitate.
  • Setarea permisiunilor pe un director fără dreptul x (execuție); pe directoare, x este necesar pentru a putea intra în folder și a-i accesa fișierele.

Comenzi înrudite

  • chown: Schimbă proprietarul și grupul asociat unuia sau mai multor fișiere ori directoare.
  • umask: Setează sau afișează masca implicită de permisiuni pentru fișierele și directoarele nou create.
  • ls: Listează fișierele și directoarele dintr-o locație, cu detalii despre dimensiuni, drepturi de acces și date.
  • stat: Afișează toate metadatele detaliate despre un fișier sau sistem de fișiere.