Vuoi modificare il proprietario o il gruppo di un file? Con il comando chown di Linux possiamo modificare il proprietario di file, cartelle e link simbolici.
In questa guida vedremo come fare a modificare proprietario e gruppo di file e cartelle e come sfruttare le opzioni del comando chown.
Iniziamo!
Table of Contents
Sintassi del comando chown
Il comando chown sta per “change owner” e serve a cambiare il propietario (owner) di file e cartelle su sistemi Linux.
Se hai familiarità con Linux, saprai che ogni file e cartella ha dei permessi che definiscono lettura, scrittura ed esecuzione. Come abbiamo visto, i permessi si impostano con il comando chmod.
Adesso, invece, andiamo a vedere come fare a modificare solo il proprietario e il gruppo proprietario di file e cartelle.
La sintassi di base di questo comando è la seguente:
chown [opzioni] nuovo_proprietario:nuovo_gruppo file
Come altri comandi Linux, anche il comando chown può essere seguito da una o più opzioni. Dopodiché va specificato il nome del proprietario “nuovo_proprietario
” e si può indicare il nome del gruppo (preceduto dai “:”), per finire si indica il nome del file o della cartella da modificare.
Con gli esempi specifici che vedremo più avanti in questo articolo, capirai bene come usare il comando. Per il momento è importante sapere che si può anche cambiare il proprietario senza modificare il gruppo. Quindi l’argomento “nuovo_gruppo
” del comando di base che abbiamo appena visto è opzionale.
La sintassi semplificata, solo per la modifica del proprietario sarà questa:
chown [opzioni] nuovo_proprietario file
Passiamo subito ai casi d’uso per capire come usare il comando chown.
Casi d’uso del comando chown
Il comando chown può essere usato per cambiare il proprietario di un singolo file, sia specificando il nome utente che l’ID del nuovo proprietario.
Possiamo anche cambiare solo il gruppo di appartenenza, oppure cambiare sia gruppo che proprietario con un singolo comando.
Andiamo a vedere le operazioni più comuni che possiamo fare usando il comando chown.
Come usare chown per cambiare il proprietario di un file
Il primo esempio che andiamo a vedere ci permette di modificare il proprietario di un file nel modo più semplice.
Per prima cosa può essere utile conoscere il proprietario attuale. Per farlo possiamo usare il comando ls in questo modo:
ls -l appunti.txt
L’output del comando ci permetterà di vedere i permessi, il proprietario e il gruppo del file in questione. In questo esempio proprietario e gruppo corrispondono a “vbox vbox” (vengono sempre indicati nell’ordine proprietario gruppo).

Prima di procedere, ricordati che per modificare i proprietari del file devi collegarti su terminale da root oppure usare “sudo” prima dei comandi. Altrimenti potresti vedere questo errore:
chown: cambiamento del proprietario di 'file.txt': Operazione non permessa
Questo succede perché il comando richiede i privilegi root.
Per modificare il proprietario del file, possiamo usare il comando chown in questo modo:
chown maria appunti.txt
Nell’esempio che vedi, il proprietario iniziale del file era “vbox” come abbiamo verificato usando il comando ls. Con il comando qui sopra ho cambiato il proprietario in “maria”.

Cambiare il proprietario di un file indicando l’ID
In alternativa al metodo che abbiamo appena visto che consiste nell’indicare il proprietario del file usando il nome utente, possiamo anche utilizzare l’ID dell’utente.
Questo metodo richiede quindi di conoscere l’ID dell’utente al quale vogliamo assegnare il file.
Se vogliamo conoscere l’ID di un utente specifico ci basta dare questo comando:
id -u username
Nell’esempio che puoi vedere più sotto, abbiamo usato questo comando per conoscere l’ID dell’utente maria:
id -u maria
Qui è importante fare attenzione ad eventuali sovrapposizioni tra ID e nome utente, quindi dovremo assicurarci che non ci siano utenti che abbiano come username il valore di quell’ID.
Per impostare il proprietario conoscendo l’ID, quindi useremo il comando:
chown id nome-file
Nel nostro esempio:
chown 1001 documento.txt
Nell’esempio qui sotto puoi vedere tutti i comandi che abbiamo appena visto e il risultato.

Cambiare il proprietario di più file
Se vogliamo modificare il proprietario di una serie di file, invece di usare lo stesso comando più volte possiamo usarlo una sola volta.
Nello specifico ci basta specificare i file uno dopo l’altro. Ecco un esempio in cui voglio modificare il proprietario di tre file:
chown maria articolo1.txt articolo2.txt file.txt
Dando questo comando l’utente maria sarà il proprietario dei tre file specificati (articolo1 articolo2 e file).

Cambiare il gruppo di appartenenza di un file
All’inizio della guida abbiamo visto che è possibile modificare sia il proprietario che il gruppo di un file.
Se vogliamo possiamo modificare il gruppo di un file usando il comando in questo modo:
chown :gruppo file.txt
Dobbiamo quindi specificare il nome del gruppo preceduto dal segno dei due punti “:“.
Per esempio per cambiare il gruppo del file da “vbox” a “users”, darò questo comando:
chown :users file.txt
Ecco infatti il risultato:

Nell’esempio qui sopra il gruppo di appartenenza di “file.txt” era vbox, con il comando chown lo abbiamo modificato in users.
Cambiare il gruppo usando l’ID
Come abbiamo visto prima per quanto riguarda gli ID degli utenti, possiamo fare lo stesso per gli ID dei gruppi.
Infatti possiamo usare il comando chown e indicare l’ID del gruppo per assegnare file e cartelle a quello specifico gruppo.
Vediamo un esempio.
In questo caso l’ID del gruppo (GID – group ID) è 1001, per impostare il gruppo userò il comando in questo modo:
chown :1001 file.txt
Cambiare proprietario e gruppo di un file
Gli esempi che abbiamo visto finora ci permettono di modificare il proprietario oppure il gruppo del file.
Possiamo anche fare entrambe le modifiche contemporaneamente e impostare un nuovo proprietario e un nuovo gruppo. Ci basta specificare entrambi nello stesso comando, in questo modo:
chown nuovo-utente:nuovo-gruppo nome-file
Per esempio:
chown maria:users documento.txt
In questo modo sto cambiando sia proprietario (maria) che gruppo (users), modificandoli rispetto a quelli di partenza (vbox vbox).

Come usare chown con le opzioni
Ora che abbiamo visto i casi d’uso più comuni del comando, vediamo alcune opzioni del comando chown che possiamo usare per operazioni specifiche.
Vedremo:
- come cambiare il proprietario di un link simbolico con l’opzione
-h
; - come copiare le impostazioni da un file ad un altro con l’opzione
--reference
; - come fare una verifica prima di effettuare la modifica, usando
--from
; - come applicare modifiche ricorsive con
-R
; - come visualizzare i dettagli delle operazioni usando le opzioni
-v
e-c
.
Cambiare il proprietario di un link simbolico
Se vogliamo cambiare il proprietario di un link simbolico, invece che del file di origine, dobbiamo specificare l’opzione corretta -h
.
Se non usiamo questa opzione, verrà modificato il file e non il suo link simbolico.
Nel nostro esempio il link simbolico “documento” si trova nella stessa cartella del file “documento.txt”.
Per modificare il proprietario del link simbolico usiamo il comando seguente:
chown -h maria:maria documento
In questo modo sto impostando come proprietario e gruppo “maria”, per il link simbolico, ma non sto modificando le proprietà del file.

Copiare le impostazioni da un file all’altro
Preso un file di riferimento possiamo usarlo per copiare le impostazioni di proprietario e gruppo verso un file di destinazione.
Per esempio posso copiare le impostazioni da “articolo1.txt” ad “articolo.txt”:
Abbiamo questa situazione di partenza:
-rwxr-xr-x 1 maria maria 2 gen 30 15:52 articolo1.txt
-rw-rw-r-- 1 vbox vbox 2 feb 10 15:06 articolo.txt
Diamo il comando:
chown --reference=articolo1.txt articolo.txt
Al termine, proprietario e gruppo di “articolo.txt” saranno impostati come quelli del file “articolo1.txt”.

Ricordati di specificare dopo l’opzione “--reference=
” il file dal quale copiare le impostazioni, e per ultimo il file a cui applicare le impostazioni.
Modificare proprietario e gruppo dopo una verifica
In alcuni casi può essere utile fare una verifica di proprietario e gruppo attuale e fare la modifica solo se i permessi attuali corrispondono a quanto ci aspettiamo.
Ad esempio vogliamo modificare il proprietario di un file da “vbox” a “maria” e vogliamo assicurarci di fare la modifica solo se il proprietario di partenza è “vbox”.
In questo caso ci viene in aito l’opzione “--from
” che si usa in questo modo:
chown --from=proprietario-attuale nuovo-proprietario nome-file
Nel nostro esempio:
chown --from=vbox maria documento.txt

Si può fare la stessa cosa verificando e poi modificando il gruppo, così:
chown --from=:vbox :maria documento.txt
In questo caso vogliamo cambiare il gruppo in “maria” solo se il file ha attualmente il gruppo “vbox”.

Applicare i cambiamenti a file e cartelle
Come abbiamo già visto nell’utilizzo del comando cp, l’opzione “-R
” ci permette di applicare le modifiche ricorsivamente a tutti i file e le sottocartelle che fanno parte di una determinata cartella.
Per esempio se vogliamo modificare proprietario e gruppo di una cartella e di tutto il suo contenuto useremo il comando così:
chown -R nuovo-proprietario:nuovo-gruppo nome-cartella
Nel nostro esempio per cambiare i permessi della cartella “Articoli” (e di tutto il suo contenuto) userò il comando seguente:
chown -R maria:maria Articoli
In questo modo avremo impostato proprietario e gruppo per la cartella e per tutto il suo contenuto, come puoi vedere dall’output dell’esempio:

Usare le opzioni c e v
Durante le modifiche da terminale possiamo accedere ai dettagli usando queste due opzioni:
- l’opzione
-v
ci permette di avere un output dettagliato in cui ci viene detto che modifiche sono state fatte e anche se il proprietario o il gruppo sono rimasti invariati; - l’opzione
-c
ci mostra solo le modifiche effettive. Questo significa che ci darà un output dettagliato solo nel caso in cui ci siano stati cambiamenti.
Vediamo con un esempio cosa cambia tra queste due opzioni.

Nell’esempio qui sopra ho dato per prima cosa il comando:
chown -c vbox documento.txt
Visto che c’è stato un cambiamento del proprietario, mi è stato restituito questo output:
il proprietario di 'documento.txt' è stato cambiato da maria in vbox
Poi ho dato il comando:
chown -v vbox documento.txt
Avendo usato l’opzione “-v”, l’output ci avvisa che non c’è stato un cambiamento:
il proprietario di 'documento.txt' è stato mantenuto pari a vbox
Se, invece, uso di nuovo l’opzione “-c” non ricevo nessun avviso.
Conclusioni
Come abbiamo visto, il comando chown di Linux ci permette di modificare il proprietario di file e cartelle. Ogni file in Linux è associato a un utente (il proprietario) e ad un gruppo, da terminale possiamo modificare questi permessi con dei semplici comandi.
Ricordati sempre che la modifica della proprietà così come quella dei permessi dei file (permessi di scrittura, lettura ed esecuzione), va sempre eseguita con cautela perché può compromettere la sicurezza dei file.
Hai altri dubbi su come usare il comando? Facci sapere nei commenti.
Lascia un commento