Persi nelle combinazioni numeriche che possono seguire il comando chmod? Facciamo un po’ di chiarezza con qualche esempietto pratico.
Premessa. Sul sistema operativo Linux, e in generale su Unix, ogni file è associato a dei permessi che possono essere di lettura (r), scrittura (w) ed esecuzione (x). Chi ha scritto il comando (David MacKenzie del MIT) ha pensato probabilmente ad un metodo flessibile per poter gestire tali permessi senza troppi fronzoli, usando una sintassi compatta quanto forse poco espressiva a chi sia poco propenso a fare uso del terminale Linux.
Come usare bene il comando chmod
Per usare adeguatamente il comando bisogna sapere che esistono tre tipi di permessi di base, che valgono sia per i file che per le cartelle di Linux:
-
- Read (r) – ovvero il permesso di lettura, per consentire di poter leggere il contenuto di un file
- Write (w), per poter scrivere
- Execute (x), per lavorare su file eseguibili (shell BASH, ad esempio, o terminale Python)
Segue anche la cosiddetta classificazione UGO, che non è Fantozzi :-) ovviamente bensଠl’acronimo delle iniziali User, Group e Others:
-
- U ~> User (di solito è l’utente che sta usando Linux da terminale)
- G ~> Group (il gruppo di appartenenza)
- O ~> Others (altri utilizzi)
Entrando in un terminale Linux possiamo renderci conto della situazione in termini di permessi digitando:
ls -l
che mostrerà qualcosa del genere:
-rwxrwxrwx@ 1 user staff 705301983 Aug 11 13:51 pruppo.zip
-rw-r--r-- 1 user www-data 0 Aug 22 22:10 readme.md
-r--------@ 1 user admin 1s92 Jul 6 10:13 chiave26.pem
drwxr-xr-x 3 user www-data 102 Aug 20 19:14 thepain
a vederlo cosଠnon sembra molto chiaro, ma per ogni file listato compariranno i permessi codificati in rwx come appena visto, ripetuti per tre volte per ogni gruppo UGO. Nella quarta colonna trovate anche, per ogni file, il gruppo di appartenenza dell’utente che può gestirlo.
… come si legge?!?! :-(
Le lettere w, r e x corrispondono a un 1
mentre il trattino -
corrisponde a uno 0
. Per cui, ad esempio:
U | G | O |
---|---|---|
r w x | r w x | r w x |
1 1 1 | 1 1 1 | 1 1 1 |
In questo caso qui sopra gli user, group e others possono leggere, scrivere ed eseguire il file senza limitazioni.
U | G | O |
---|---|---|
r w – | r — | r – x |
1 1 0 | 1 0 0 | 1 0 1 |
In quest’altro caso l’utente può legegre e scrivere, il gruppo può solo leggere, gli altri possono leggere ed eseguire quel file.
Codifica CHMOD binario / decimale / notazione Linux
Questa tabellina riporta la codifica dei vari stati che sono disponibili.
Binario | Decimale | Rappresentazione Linux |
---|---|---|
000 | 0 | -Â -Â – |
001 | 1 | -Â -Â x |
010 | 2 | - w – |
011 | 3 | - w x |
100 | 4 | r - – |
101 | 5 | r - x |
110 | 6 | r w – |
111 | 7 | r w x |
Sintassi generale chmod
Per usare chmod possiamo sfruttare il template seguente, a questo punto
chmod permessi_utente permessi_gruppo permessi_others [file o directory]
Esempi pratici chmod / Significato dei comandi
Andando su esempi pratici, avremo:
chmod 777 file
equivale a permessirwx rwx rwx
in cui chiunque può fare qualsiasi cosa su filechmod 744 dir
equivale a permessirwx r-- r--
in cui solo lo user può leggere, eseguire e scrivere, mentre gruppo e utente ossono soltanto leggere la dirchmod 200 file
equivale a permessi-w- --- ---
e significa che il file può essere solo scritto
Inoltre:
chmod 644 file.htm
Imposta i permessi di file.htm su “il proprietario può leggere e scrivere; il gruppo può leggere solo; altri possono leggere solo”.
chmod -R 755 myfiles
Cambia i permessi della directory myfiles in modo ricorsivo (-R), e tutte le cartelle ei file in essa contenuti, in modalità 755. L’utente può leggere, scrivere ed eseguire; i membri del gruppo e altri utenti possono leggere ed eseguire, ma non possono scrivere.
chmod u=rw esempietto.jpg
Modifica le autorizzazioni per il proprietario di esempietto.jpg in modo che il proprietario possa leggere e scrivere il file. Non modificare le autorizzazioni per il gruppo o per altri.
chmod u+s file.txt
Imposta il “Set-User-ID” di file.txt, in modo che chiunque tenti di accedere a quel file lo faccia come se fosse il proprietario del file.
chmod u-s file.txt
L’opposto del comando sopra; annulla l’impostazione del bit SUID.
chmod 755 file.cgi
Imposta le autorizzazioni di file.cgi su “lettura, scrittura ed esecuzione dal proprietario” e “lettura ed esecuzione dal gruppo e da tutti gli altri”.
chmod 666 file.txt
Imposta il permesso di file.txt su “leggi e scrivi da tutti”.
chmod a=rw file.txt
Fa la stessa cosa del comando precedente, utilizzando una sintassi differente (notazione simbolica). Per sapere come usare chmod in WordPress clicca qui.
Photo by Gabriel Heinzer on UnsplashÂ
👇 Da non perdere 👇
- Cellulari 📱
- Domini Internet 🌍
- Gratis 🎉
- Informatica 🖥
- Scrivere 🖋
- Sicurezza & Privacy 👁
- Spiegoni artificiali 🎓
- Svago 🎈
- 💬 Il nostro canale Telegram: iscriviti
- 🔵 Come si fa la moltiplicazione araba [GUIDA]
- 🔴 Guida per stampante offline: cosa fare?
- 🟢 Heap: cos’è e come si gestisce in informatica