In questo articolo
Cos'e chmod?
chmod (change mode) e un comando Unix e Linux che imposta i permessi di file e directory. Ogni file su un sistema Unix ha tre categorie di permessi: proprietario, gruppo e altri. Ogni categoria puo ricevere indipendentemente i permessi di lettura, scrittura ed esecuzione.
Comprendere chmod e essenziale per l'amministrazione di sistema, la configurazione dei server web e la gestione sicura dei file. Permessi errati sono una delle cause piu comuni di vulnerabilita di sicurezza sui server Linux.
Come funzionano i permessi chmod
I permessi possono essere espressi in due notazioni: numerica (ottale) e simbolica. La notazione numerica usa tre cifre (es. 755).
- Lettura (r = 4) — visualizzare il contenuto del file o elencare le voci della directory
- Scrittura (w = 2) — modificare il contenuto del file o aggiungere/rimuovere file in una directory
- Esecuzione (x = 1) — eseguire un file come programma o entrare in una directory con cd
Ogni cifra e la somma dei suoi permessi: 7 = lettura + scrittura + esecuzione (4+2+1), 6 = lettura + scrittura (4+2), 5 = lettura + esecuzione (4+1), 4 = sola lettura.
Prova gratuitamente — nessuna registrazione richiesta
Calcola i permessi chmod →Valori di permessi comuni
Ecco i valori chmod piu frequentemente utilizzati e le loro applicazioni tipiche.
- 755 (rwxr-xr-x) — standard per file eseguibili e directory
- 644 (rw-r--r--) — standard per file regolari
- 700 (rwx------) — directory o script privato; solo il proprietario ha accesso
- 600 (rw-------) — file privato come chiavi SSH; solo il proprietario puo leggere e scrivere
- 777 (rwxrwxrwx) — accesso completo per tutti; quasi mai appropriato ed e un rischio per la sicurezza
Implicazioni di sicurezza
Il principio del minimo privilegio si applica direttamente ai permessi dei file: concedi solo i permessi minimi necessari.
I bit di permesso speciali aggiungono un ulteriore livello: SUID, SGID e lo sticky bit sulle directory impediscono agli utenti di eliminare file non propri.
Consigli e best practice
Segui queste linee guida per mantenere permessi sicuri e funzionali.
- Le directory necessitano del permesso di esecuzione — senza, gli utenti non possono entrare nella directory
- Usa chmod ricorsivo con cautela — chmod -R 755 rende tutti i file eseguibili; usa find con -type f e -type d separatamente
- Imposta i valori predefiniti umask — umask 022 crea file come 644 e directory come 755
Domande frequenti
Qual e la differenza tra 755 e 777?
Con 755, il proprietario ha il controllo completo mentre gruppo e altri possono solo leggere ed eseguire. Con 777, tutti hanno il controllo completo. Usare 777 non e quasi mai necessario e crea un rischio significativo per la sicurezza.
Perche le directory hanno bisogno del permesso di esecuzione?
Il bit di esecuzione su una directory controlla la capacita di attraversarla. Senza permesso di esecuzione, un utente non puo entrare nella directory. Per questo le directory hanno tipicamente 755 mentre i file hanno 644.
Quali sono i permessi predefiniti per i nuovi file?
I permessi predefiniti dipendono dall'impostazione umask. Con l'umask comune di 022, i nuovi file vengono creati con 644 e le nuove directory con 755.