chmod
(abbreviazione di "change mode") è un comando della shell Unix e Linux utilizzato per modificare i permessi di accesso a file e directory. Controlla chi può leggere, scrivere ed eseguire file specifici. Comprendere e utilizzare chmod
è fondamentale per la sicurezza e la gestione dei file in ambienti Unix-like.
Sintassi di Base:
chmod [opzioni] modalità file...
opzioni
: Modificano il comportamento di chmod
(es: ricorsivamente).modalità
: Specifica i nuovi permessi. Può essere numerica (ottale) o simbolica.file
: Il file o la directory a cui si applicano i permessi.Modalità Numerica (Ottale):
La modalità numerica rappresenta i permessi come un numero ottale a 3 cifre. Ogni cifra rappresenta i permessi per una diversa categoria di utenti:
Ogni cifra è la somma dei seguenti valori:
Esempio: chmod 755 file.txt
Modalità Simbolica:
La modalità simbolica usa lettere per rappresentare le categorie di utenti e le operazioni:
u
: Utente (proprietario)g
: Gruppoo
: Altria
: Tutti (utente, gruppo e altri)Operatori:
+
: Aggiunge il permesso specificato.-
: Rimuove il permesso specificato.=
: Imposta i permessi specificati, rimuovendo gli altri.Permessi:
r
: Letturaw
: Scritturax
: EsecuzioneX
: Esecuzione solo se il file è una directory o ha il permesso di esecuzione già impostato per almeno una categoria.s
: Imposta il bit SetUID o SetGID.t
: Imposta il bit Sticky.Esempio: chmod u+x,g-w file.txt
Opzioni Comuni:
-R
, --recursive
: Applica i cambiamenti ricorsivamente a tutte le directory e i file all'interno di una directory. Esempio: chmod -R 777 cartella
-v
, --verbose
: Mostra un output dettagliato di ogni file processato.--reference=RFILE
: Usa i permessi di RFILE
come riferimento per impostare i permessi del file target.Esempi Comuni:
chmod a+x file.sh
chmod 777 file.txt
(Sconsigliato per la sicurezza a meno che non sia strettamente necessario)chmod o-w file.txt
find
combinato con chmod
per differenziare directory e file, non direttamente fattibile con un singolo comando chmod
ma più come una sequenza di comandi).Considerazioni sulla Sicurezza:
Un uso improprio di chmod
può compromettere la sicurezza del sistema. Ad esempio, impostare i permessi a 777 su file sensibili li rende accessibili e modificabili da chiunque. Prestare particolare attenzione quando si usano le opzioni -R
e quando si modificano i permessi di directory di sistema. Comprendere i bit SetUID e SetGID e il bit Sticky è cruciale per configurare i permessi di sicurezza avanzati.