Comando chown in Linux: cambiare proprietario e gruppo dei file
chown cambia il proprietario e, se indicato, il gruppo di un file o di una directory. È utile per assegnare dati all’account di un servizio, ma un percorso sbagliato o una modifica ricorsiva troppo ampia può impedire al servizio di accedervi.
La forma proprietario:gruppo cambia entrambi gli attributi; indicando solo il proprietario, senza i due punti finali, il gruppo rimane invariato. I permessi di lettura, scrittura ed esecuzione si impostano invece con chmod. Cambiare proprietario può comunque modificare quali permessi si applicano a un processo e può incidere sui bit speciali.
Sintassi di base
chown [opzioni] proprietario[:gruppo] file...
Parentesi quadre e puntini sono notazione: indicano parti facoltative e uno o più percorsi, non vanno copiati letteralmente. Questa guida usa GNU chown; consulta man chown sulla macchina interessata per le opzioni disponibili.
Fra proprietario, due punti e gruppo non si inseriscono spazi. Attenzione alla differenza fra alice e alice:: la seconda forma imposta anche il gruppo di accesso di alice. La forma :editors cambia invece solo il gruppo. Per un intervento amministrativo, specifica esattamente gli attributi che intendi modificare.
Esempi d’uso
Gli esempi presuppongono un file di prova chiamato report.txt, l’esistenza dell’utente alice e, quando richiesto, del gruppo editors. Usa un file senza dati importanti in una directory dedicata. Le righe con sudo richiedono autorizzazione amministrativa: non applicarle a percorsi di sistema per provare il comando.
Cambiare solo il proprietario
sudo chown alice report.txt
Imposta alice come proprietario di report.txt, lasciando invariato il gruppo. Sostituisci il nome soltanto dopo avere verificato l’account e il percorso effettivi.
Cambiare proprietario e gruppo
sudo chown alice:editors report.txt
Imposta contemporaneamente alice come proprietario ed editors come gruppo. Non crea né l’utente né il gruppo: se mancano, occorre chiarire quale identità usare prima di procedere.
Controllare gli attributi
stat -c '%U:%G %n' report.txt
Con GNU stat, %U mostra il nome del proprietario, %G quello del gruppo e %n il percorso. Esegui questa verifica prima e dopo la modifica. Dopo il secondo esempio, il risultato atteso è alice:editors report.txt, se nomi e identità vengono risolti come previsto.
Verificare il cambio di proprietario e gruppo
Per l’esempio seguente prepara un file di prova demo.txt e verifica che esistano l’utente alice e il gruppo developers. Puoi creare il file con un editor, nella directory dedicata; evita di riutilizzare un file esistente di cui non conosci la funzione.
sudo chown alice:developers demo.txt
stat -c '%U:%G %n' demo.txt
Output illustrativo atteso dopo un cambio riuscito, con quei nomi presenti sul sistema:
alice:developers demo.txt
Di solito chown non stampa nulla quando riesce. Leggi gli eventuali errori e controlla il risultato: nel blocco sopra stat viene eseguito anche se la riga precedente fallisce, quindi la sua sola presenza non dimostra che la modifica sia riuscita. Se un nome non viene risolto, confronta anche gli identificatori numerici.
UID (User ID) e GID (Group ID) identificano numericamente utenti e gruppi. Contenitori, host e filesystem di rete possono associare nomi uguali a numeri diversi. Confronta le identità mostrate da id, per esempio con id alice, e gli attributi del file con stat -c '%u:%g %n' demo.txt, nel contesto in cui opera il servizio. %u e %g mostrano i numeri; non dedurre la corrispondenza fra host e contenitore dal solo nome.
Per un servizio, verifica inoltre che l’account effettivo possa leggere o scrivere i dati necessari. La corrispondenza di proprietario e gruppo non elimina altre restrizioni del filesystem o del servizio. Cambiare arbitrariamente la proprietà dei suoi file può provocare errori di accesso.
Opzioni principali
| Opzione | Effetto |
|---|---|
-R |
Cambia ricorsivamente la proprietà della directory e dei suoi contenuti. Verifica prima tutto l’ambito. |
-h |
Opera sul collegamento simbolico anziché sul file a cui punta, sui sistemi che supportano il cambio di proprietà del collegamento. |
--reference=file |
Usa proprietario e gruppo del file di riferimento. Non copia contenuto o permessi ordinari. |
-v |
Mostra un messaggio per ogni file elaborato; non è una modalità di simulazione. |
In --reference=file, sostituisci file con un riferimento controllato. Se il riferimento è un collegamento simbolico, GNU chown usa la proprietà del file a cui punta. Racchiudi fra virgolette i percorsi contenenti spazi.
Precauzioni per ricorsione e ripristino
Prima di chown -R, verifica il percorso con stat e l’elenco dei contenuti con find o ls. Una sola destinazione sbagliata può interessare molti file. Preferisci un percorso ristretto e considera che l’albero può contenere file appartenenti a utenti diversi: non esiste un unico proprietario precedente valido per tutti.
Un collegamento simbolico passato a chown senza -h può far cambiare la proprietà del file di destinazione. La scelta di attraversare le directory collegate durante la ricorsione è distinta: GNU chown usa per impostazione predefinita -P per non attraversarle, -H per un collegamento a directory passato sulla riga di comando e -L per tutti quelli incontrati. Non trattare -h e queste opzioni come equivalenti.
Prima di un intervento reale, conserva proprietario e gruppo numerici, modo e configurazione necessari per il ripristino dei singoli file. Per annullare un cambio semplice, un amministratore deve reimpostare gli attributi registrati sullo stesso destinatario e controllarli di nuovo. Il comando inverso non ricostruisce automaticamente l’assetto di un albero modificato ricorsivamente.
Un cambio di proprietà può anche cancellare i bit speciali setuid (set-user-ID) o setgid (set-group-ID), secondo sistema e privilegi. Rimettere il vecchio proprietario non garantisce quindi il ripristino di tutti gli effetti. Il manuale GNU coreutils, sezione chown descrive forme degli operandi, opzioni e dipendenze dal sistema.
Domande frequenti
Che differenza c’è fra chown alice report.txt e chown alice:editors report.txt?
Il primo cambia soltanto il proprietario del file; il secondo imposta sia il proprietario alice sia il gruppo editors. La forma con i soli due punti finali, alice:, ha un altro effetto: assegna anche il gruppo di accesso di alice.
Documentazione di riferimento
Il manuale GNU chown(1) riepiloga sintassi e opzioni. Per i dettagli applicabili alla macchina su cui lavori, consulta anche il manuale installato e le regole del filesystem utilizzato.




