Il comando chmod consente di modificare i permessi di un file o di una directory. Solo il proprietario del file o della directory o l'amministratore di sistema può modificare i permessi dell'oggetto.
Sintassi
La sintassi del comando chmod è:
# chmod [options] {mode} {file/ directory name}
Opzioni comando chmod
Il comando chmod supporta diverse opzioni per modificare i permessi. È possibile utilizzare una o più di queste opzioni alla volta.
Opzione | Descrizione |
---|---|
-c | Segnala le modifiche apportate alle autorizzazioni. |
-f | Nascondi la maggior parte dei messaggi di errore. |
-v | Visualizza una voce di diagnostica per ogni file elaborato. |
-R | Modifica i permessi di file e directory in modo ricorsivo. |
I bit di autorizzazione applicati a un oggetto del file system corrispondono direttamente ai valori che possono essere specificati nella tupla a 4 cifre fornita all'utilità chmod nel comando seguente:
# chmod abcd [file system object]
Ciascun valore nel set di cifre abcd è costituito dalla somma dei valori 1 2 e 4. Sommando questi valori per ciascuna cifra, è possibile generare un valore per impostare tutti gli attributi degli oggetti file:
- a – Questa cifra controlla le impostazioni degli attributi speciali. il valore 1 imposta il bit setuid, il valore 2 imposta il bit setgid e il valore 4 imposta il bit sticky sull'oggetto.
- b, c e d – Queste cifre controllano le autorizzazioni di lettura, scrittura ed esecuzione per il proprietario del file, il gruppo principale dei proprietari del file e tutti gli altri utenti. Il valore 4 abilita l'autorizzazione di lettura, il valore 2 abilita l'autorizzazione di scrittura e il valore 1 abilita l'autorizzazione di esecuzione.
Per impostare un file in modo che sia permanente, leggibile e scrivibile dal proprietario, leggibile dal gruppo principale e inaccessibile a tutti gli altri:
# chmod 4610 filename
Per concedere tutti i permessi a tutti sul sistema:
# chmod 0777 filename
Se riscontri un errore di seguito durante l'esecuzione del comando chmod:
chmod: command not found
puoi provare a installare il pacchetto seguente secondo la tua scelta di distribuzione:
Distribuzione | Comando |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpino | apk aggiunge coreutils |
Arch Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fedora | dnf installa coreutils |
Raspbian | apt-get install coreutils |
Esempi di comandi chmod
1. Concedi all'[utente] proprietario di un file il diritto di e[x]eseguirlo:
# chmod u+x path/to/file
2. Assegna all'[utente i diritti di [r]ead e [w]rite su un file/directory:
# chmod u+rw path/to/file_or_directory
3. Rimuovere i diritti e[x]eseguibili dal [g]roup:
# chmod g-x path/to/file
4. Concedi a [tutti] gli utenti i diritti di [r]ead ed e[x]ecute:
# chmod a+rx path/to/file
5. Assegna a [altri] altri (non nel gruppo del proprietario del file) gli stessi diritti del gruppo [g]:
# chmod o=g path/to/file
6. Rimuovi tutti i diritti da [altri]:
# chmod o= path/to/file
7. Modificare le autorizzazioni in modo ricorsivo dando a [g]roup e [altri] altri la possibilità di [w]scrivere:
# chmod -R g+w,o+w path/to/directory
8. Concedi ricorsivamente [a]tutti gli utenti [r]ead autorizzazioni ai file e e[X]ecute autorizzazioni alle sottodirectory all'interno di una directory:
# chmod -R a+rX path/to/directory
Conclusione
Sui sistemi Unix e Linux, dovresti usare l'utilità chmod per impostare i valori delle autorizzazioni su file e directory. Puoi impostare le autorizzazioni per l'utente del file o della directory, il gruppo associato al file o alla directory e altro ancora. Le tre autorizzazioni di base sono le seguenti:
- r :indica un'autorizzazione di lettura.
- con :indica un'autorizzazione di scrittura.
- x :Questa è l'autorizzazione eseguibile. Puoi applicarlo a qualsiasi tipo di file di programma o alle directory. Se applichi un'autorizzazione eseguibile a una directory, le persone autorizzate potranno fare cd in essa.