COMANDO CHMOD

chmod

chmod (abbreviazione dalla lingua inglese di change mode, cambia modalità) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX, che modifica i permessi di file e directory.

chmod è anche il nome di una chiamata di sistema, definita dallo standard POSIX, che modifica i permessi di un file o directory. Di fatto il comando chmod opera invocando l’omonima chiamata di sistema.

Il comando chmod è apparso per la prima volta nella prima versione Unix di AT&T ed è presente nei sistemi operativi Unix e Unix-like.

La sintassi generale di chmod è la seguente:

chmod [opzioni] [–] modalità file1 [file2 …]

Il parametro modalità indica le modifiche da applicare ai permessi.

Il doppio trattino — (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.

I collegamenti simbolici non hanno mai permessi propri, essendo solo riferimenti per nome ad un altro file, e a tutti gli effetti si può considerare che abbiano i permessi del file o della directory a cui si riferiscono.

È al limite possibile, in alcuni sistemi, dare opzioni per il cambiamento ricorsivo dei permessi seguendo anche i collegamenti simbolici (ad es. nel caso dei sistemi di derivazione BSD come FreeBSD, OpenBSD e NetBSD, e anche macOS).

Esempi
Rappresentazione simbolica
chmod “u=rwx”,”g=rx”,”o=x” nomeFile
chmod “o=+rx” nomefile
chmod “u=+rwx”,”go=-” nomefile
chmod “u=+rwS”,”go=-” nomefile
Per il significato di S vedi anche gli altri permessi Unix.

Rappresentazione ottale
Nella rappresentazione ottale ogni cifra indica i permessi per i differenti utenti.

chmod UGO nomefile
La cifra U rappresenta il livello di permessi per l’utente, G il livello di permessi del gruppo e O il livello di permessi generale

La tabella seguente indica il significato dei singoli valori

Valore binario (rwx) Valore decimale Permessi
111 7 lettura, scrittura ed esecuzione
110 6 lettura e scrittura
101 5 lettura ed esecuzione
100 4 solo lettura
011 3 scrittura ed esecuzione
010 2 solo scrittura
001 1 solo esecuzione
000 0 nessuno

Esempi:

chmod 734 nomefile
assegna tutti i permessi all’utente, scrittura ed esecuzione per il gruppo e solo lettura per tutti gli altri.

chmod 777 nomefile
assegna tutti i permessi all’utente corrente, al suo gruppo ed anche a tutti gli altri.

chmod -R 777 nomedirectory
come il precedente ma riguarda una directory e tutti i file esistenti all’interno della stessa.