Introduzione
Il chown
comando cambia la proprietà dell'utente di un file, directory o collegamento in Linux. Ogni file è associato a un utente o gruppo proprietario. È fondamentale configurare correttamente i permessi di file e cartelle.
In questo tutorial, scopri come usare il comando Linux chown con esempi forniti.
Prerequisiti
- Sistema Linux o simile a UNIX
- Accesso a un terminale/riga di comando
- Un utente con privilegi sudo per modificare la proprietà. Ricordati di eseguire i comandi con sudo per eseguirli correttamente.
Sintassi dei comandi di Linux Chown
La sintassi di base del comando chown è composta da pochi segmenti. Il file della guida mostra il seguente formato:
chown [OPTIONS] USER[:GROUP] FILE(s)
- [OPZIONI] – il comando può essere utilizzato con o senza opzioni aggiuntive.
- [UTENTE] – il nome utente o l'ID utente numerico del nuovo proprietario di un file.
- [:] – usa i due punti quando modifichi un gruppo di file.
- [GRUPPO] – la modifica della proprietà del gruppo di un file è facoltativa.
- FILE – il file di destinazione.
Le autorizzazioni di superutente sono necessarie per eseguire il comando chown.
In questa guida, abbiamo testato gli esempi di comandi con la versione 8.28 di chown in Ubuntu 18.04.2 LTS.
Per verificare la versione di chown sulla tua macchina, inserisci:
chown --version
L'output sarà simile a questo:
Come verificare la proprietà di un file in Linux
Innanzitutto, devi conoscere il proprietario o il gruppo del file originale prima di apportare modifiche alla proprietà utilizzando il comando chown.
Per verificare il gruppo o la proprietà dei file e delle directory Linux nella posizione corrente, esegui il comando seguente:
ls -l
Un esempio di output di ls
il comando è simile a questo:
Come modificare il proprietario di un file
La modifica del proprietario di un file con chown richiede di specificare il nuovo proprietario e il file. Il formato del comando è:
chown NewUser FILE
Il comando seguente cambia la proprietà di un file campione da radice all'utente test :
chown test sample
Utilizza lo stesso formato per modificare la proprietà di file e directory .
Cambia il proprietario di un file con l'UID
Invece di un nome utente, puoi specificare un ID utente per modificare la proprietà di un file.
Ad esempio:
chown 1002 sample2
Assicurati che non ci siano utenti con lo stesso nome dell'UID numerico. Se c'è, il comando chown dà priorità al nome utente, non all'UID .
Modifica la proprietà di più file Linux
Elenca i nomi dei file di destinazione dopo il nuovo utente per modificare la proprietà di più file. Usa spazi singoli tra i nomi dei file.
Nell'esempio seguente, root sarà il nuovo proprietario dei file sample2 ecampione3 .
chown root sample2 sample3
Combina nomi di file e nomi di directory per cambiarne la proprietà con un comando. Ad esempio:
chown root sample3 Dir1
Non dimenticare che i comandi fanno distinzione tra maiuscole e minuscole.
Come modificare il gruppo di un file
Con chown, puoi cambiare un gruppo per un file o una directory senza cambiare l'utente proprietario. Il risultato è lo stesso dell'utilizzo del comando chgrp.
Esegui il chown
comando utilizzando i due punti e il nome di un gruppo:
chown :NewGroup FILE
L'esempio seguente cambia il gruppo del file sample3 da grouptest a group3.
chown :group3 sample3
Elenca più nomi di file o directory per apportare modifiche in blocco.
Modifica il gruppo di un file utilizzando GID
Simile all'UID, utilizza un ID gruppo (GID) invece del nome di un gruppo per modificare il gruppo di un file.
Ad esempio:
chown :1003 sample
Cambia proprietario e gruppo
Per assegnare un nuovo proprietario a un file e modificarne il gruppo allo stesso tempo, esegui il chown
comando in questo formato:
chown NewUser:NewGroup FILE
Pertanto, per impostare linuxuser come nuovo proprietario e gruppo2 come nuovo gruppo del file sample2 :
chown linuxuser:group3 sample3
Ricorda che non ci sono spazi prima o dopo i due punti.
Cambia il gruppo in un gruppo di accesso utenti
Il comando chown assegna il gruppo di accesso del proprietario al file quando non viene specificato alcun gruppo.
Per fare ciò, definisci un nuovo utente seguito da due punti, spazio e il file di destinazione:
chown NewUser: FILE
L'esempio seguente cambia la proprietà del gruppo nel gruppo di accesso di linuxuser :
chown linuxuser: sample3
Trasferisci proprietà e impostazioni di gruppo da un file a un altro
Anziché modificare la proprietà di un utente specifico, puoi utilizzare il proprietario e un gruppo di un file di riferimento.
Aggiungi il --reference
opzione al comando chown per copiare le impostazioni da un file all'altro:
chown --reference=ReferenceFILE FILE
Ricordati di digitare correttamente i nomi dei file per evitare il messaggio di errore:
Controlla proprietario e gruppo prima di apportare modifiche
Il chown
comando --from
l'opzione ti consente di verificare il proprietario e il gruppo attuali e quindi di applicare le modifiche.
La sintassi di chown per controllare sia l'utente che il gruppo è simile alla seguente:
chown --from=CurrentUser:CurrentGroup NewUser:NewGroup FILE
L'esempio seguente mostra che abbiamo prima verificato la proprietà e il gruppo del file sample3 :
chown --from=root:group2 linuxuser:group3 sample3
Quindi chown ha cambiato il proprietario in linuxuser e il gruppo a group3 .
Controlla solo proprietario
L'opzione --from
può essere utilizzato per convalidare solo l'utente corrente di un file.
chown --from=CurrentUser NewUser FILE
Ad esempio:
chown --from=root linuxuser sample3
Verifica solo gruppo
Analogamente alla sezione precedente, puoi convalidare solo il gruppo di un file utilizzando l'opzione --from
.
chown --from=:CurrentGroup :NewGroup FILE
Ecco un esempio in cui abbiamo verificato il gruppo corrente prima di modificarlo:
chown --from=:group3 :group4 FILE
Ricorda di utilizzare i due punti per entrambi i nomi dei gruppi per evitare messaggi di errore.
Come modificare ricorsivamente la proprietà dei file
Il comando chown consente di modificare la proprietà di tutti i file e le sottodirectory all'interno di una directory specificata. Aggiungi il -R
opzione al comando per farlo:
chown -R NewUser:NewGroup DirNameOrPath
Nell'esempio seguente, cambieremo in modo ricorsivo il proprietario e il gruppo per tutti i file e le directory in Dir1 .
chown -R linuxuser:group3 Dir1
Comando Chown e collegamenti simbolici
Per modificare il proprietario di un collegamento simbolico, utilizza il -h
opzione. In caso contrario, la proprietà del file collegato verrà modificata.
L'immagine seguente mostra come si comportano i link simbolici quando -h
viene omesso.
Il proprietario e il gruppo del collegamento simbolico rimangono intatti. Invece, il proprietario e il gruppo del file file di testo cambiato.
Per inviare le modifiche al collegamento, esegui il comando chown con il -h
bandiera:
chown -h NewUser:NewGroup SymbolicLink
Nell'esempio seguente, abbiamo modificato il proprietario e il gruppo di un collegamento simbolico.
Visualizza i dettagli del processo di comando di Chown
Per impostazione predefinita, il terminale non visualizza le informazioni sul processo chown. Per vedere cosa succede sotto il cofano, usa uno dei due flag della riga di comando:
- L'opzione –v produce i dettagli del processo anche quando la proprietà rimane la stessa.
- L'opzione –c visualizza le informazioni di output solo quando un proprietario o un gruppo del file di destinazione cambia.
Ad esempio, se specifichiamo il proprietario attuale come nuovo proprietario del file:
chown -v linuxuser sample2
Il terminale produce il seguente output:
Passa da -v
a -c
e non ci saranno messaggi in questo caso. Ciò accade perché non ci sono modifiche al proprietario o al gruppo.
Le informazioni sono particolarmente utili con il comando ricorsivo chown :
In questo esempio, l'output elenca tutti gli oggetti interessati dopo l'esecuzione del comando.
Elimina gli errori di comando di Chown
Per evitare di visualizzare potenziali messaggi di errore durante l'esecuzione del comando chown, utilizza il -f
opzione:
chown -f NewUser FILE
L'esempio seguente mostra il messaggio di errore per un file o una directory inesistente:
Aggiunta del -f
flag sopprime la maggior parte dei messaggi di errore. Tuttavia, se specifichi un nome utente non valido, viene visualizzato il messaggio di errore: