Due comandi fondamentali per chi gestisce sistemi Linux: chmod, che modifica i permessi di un file, e chown (insieme al suo parente chgrp), che ne cambia proprietario e gruppo. Se non hai visto la puntata precedente sui permessi, recuperala: qui diamo per scontato che UGO (user, group, others) e rwx (read, write, execute) siano già nella tua testa.
Partiamo dal file di prova della volta scorsa. Se non ce l’hai, crealo:
echo "prova permessi" > permessi.txt
ls -l permessi.txt
Il file ha permessi di lettura e scrittura per il proprietario e di sola lettura per il gruppo e per gli altri: rw-r–r–.
Chmod: cambiare i permessi
chmod sta per change mode. La sintassi simbolica è: chi (u, g, o), poi l’operazione (+ aggiunge, – toglie, = imposta), poi quali permessi (r, w, x), infine il file.
Togliamo il permesso di lettura a others:
chmod o-r permessi.txt
ls -l permessi.txt
Others non ha più il permesso di lettura. Ora aggiungiamo il permesso di esecuzione al proprietario:
chmod u+x permessi.txt
ls -l permessi.txt
Lo user ora ha rwx. Si può cambiare più di un permesso alla volta: diamo al gruppo anche scrittura ed esecuzione.
chmod g+wx permessi.txt
ls -l permessi.txt
Il gruppo ha aggiunto w e x.
Chown e chgrp: proprietario e gruppo
Per cambiare l’utente proprietario si usa chown. Per esempio, assegniamo il file a www-data, l’utente del server web (serve essere root, quindi con sudo):
sudo chown www-data permessi.txt
ls -l permessi.txt
L’utente non è più root ma www-data. Per cambiare il gruppo c’è chgrp:
sudo chgrp www-data permessi.txt
ls -l permessi.txt
Con chown puoi cambiare utente e gruppo contemporaneamente, con la sintassi utente:gruppo. Rimettiamo tutto a root in un colpo solo:
sudo chown root:root permessi.txt
ls -l permessi.txt
Agire sulle cartelle: L’opzione -R
Questi comandi lavorano su un file alla volta. Se li applichi a una cartella e vuoi che la modifica si estenda ricorsivamente a sottocartelle e file contenuti, devi usare l’opzione -R maiuscola, sia con chown che con chgrp (e anche con chmod):
sudo chown -R www-data:www-data cartella
sudo chgrp -R www-data cartella
chmod -R o-r cartella
Se hai dubbi sulla sintassi di un comando, c’è sempre il manuale:
man chown
Dentro man ritrovi l’opzione -R di cui parlavamo, e quando hai finito di leggere premi q per tornare da dove eri partito.
Conclusione
Abbiamo visto chmod, chown e chgrp, per gestire permessi, proprietari e gruppi proprietari dei file. Sono basi importanti: vanno sbranate da chiunque si occupi di sistemi Linux. Fai pratica sulla tua macchina, sempre con file sacrificabili.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- chmod(1), man page — il comando chmod
- chown(1), man page — il comando chown
- chgrp(1), man page — il comando chgrp
- Permessi e attributi sulla wiki di Arch — in inglese
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
