Il comando chmod permette di cambiare le autorizzazioni di un file o di una directory. Questa operazione può essere eseguita solo dal proprietario del file o della directory o da un utente root. La sintassi generale del comando chmod è la seguente:
chmod autorizzazioni nome |
dove autorizzazioni indica le autorizzazioni da modificare e nome è il nome del file o della directory su cui si desidera eseguire l'operazione.
Le autorizzazioni possono essere specificate in vari modi. Qui di seguito viene illustrata una delle forme di indicazione più semplici:
Usare una o più lettere per indicare gli utenti interessati:
u (user - il proprietario)
g (group - il gruppo)
o (other - altri utenti)
a (all - tutte le categorie)
Indicare se le autorizzazioni devono essere aggiunte (+) o eliminate (-).
Usare una o più lettere per indicare le autorizzazioni di interesse:
Nell'esempio seguente, viene aggiunta l'autorizzazione di scrittura alla directory viole per gli utenti appartenenti allo stesso gruppo del proprietario (autorizzazioni diventa perciò g+w e nome viene sostituito con viole):
$ ls -l viole drwxr-xr-x 3 utente2 1024 feb 10 11:15 viole $ chmod g+w viole $ ls -l viole drwxrwxr-x 3 utente2 1024 feb 10 11:15 viole $ |
Come si può osservare, per effetto del comando il trattino (-) nella sequenza di caratteri relativa alle autorizzazioni del gruppo è diventato una w.
Per eliminare dalla stessa directory le autorizzazioni di lettura ed esecuzione degli utenti esterni al gruppo (autorizzazioni viene sostituito in questo caso da o-rx), digitare il seguente comando:
$ ls -l viole drwxrwxr-x 3 utente2 1024 feb 10 11:15 viole $ chmod o-rx viole $ ls -l viole drwxrwx--- 3 utente2 1024 feb 10 11:15 viole $ |
In seguito al comando, la r (lettura) e la x (esecuzione) del gruppo di caratteri relativi alle autorizzazioni degli altri utenti sono state sostituite da trattini (-).
Quando si crea un nuovo file o una nuova directory, il sistema assegna automaticamente le autorizzazioni di default.
In generale, le autorizzazioni di default per i nuovi file sono le seguenti:
-rw-r--r--
Per le nuove directory sono invece le seguenti:
drwxr-xr-x
Perciò, per creare un nuovo file petunia che sia eseguibile dal proprietario (utente2) occorrerà procedere come segue:
$ ls -l petunia -rw-r--r-- 3 utente2 1024 feb 10 12:27 petunia $ chmod u+x petunia $ ls -l petunia -rwxr--r-- 3 utente2 1024 feb 10 12:27 petunia $ |
Per modificare con un solo comando le autorizzazioni di tutte le categorie di utenti, usare l'opzione a. Per creare ad esempio un nuovo file rosa che sia eseguibile da tutti gli utenti, procedere come segue:
$ ls -l rosa -rw-r--r-- 3 utente2 1024 feb 10 11:31 rosa $ chmod a+x rosa $ ls -l rosa -rwxr-xr-x 3 utente2 1024 feb 10 11:31 rosa $ |
In seguito al comando, in tutte le categorie comparirà la lettera x.
È anche possibile cambiare le autorizzazioni di più file e directory utilizzando il carattere speciale *. Ad esempio, per cambiare le autorizzazioni di tutti i file della directory corrente fiori in modo che solo il proprietario vi abbia accesso di scrittura, procedere come segue:
Nell'esempio, l'uso del comando pwd permette di verificare che la directory in cui viene eseguita l'operazione chmod sia la directory corrente.