Il comando chown in Linux consente di modificare la proprietà di file e directory. Puoi giustamente intuire che "chown" è l'abbreviazione di "cambia proprietario".
Se non sei a conoscenza di questi termini, ti consiglio vivamente di leggere il mio articolo esplicativo sui permessi dei file e la proprietà in Linux.
Ecco un'immagine per richiamarla rapidamente:
Con il comando chown, puoi modificare la proprietà dell'utente e del gruppo di un file o di una directory.
Esempi di comando chown in Linux
Ecco come appare la sintassi del comando chown:
chown [options] user_spec files
Tieni presente che chown è un comando amministrativo e quindi devi essere root o disporre dei diritti sudo per apportare modifiche con il comando chown. Spero che tu sappia come aggiungere l'utente sudo.
In caso contrario, vedrai un errore come questo:
chown: changing ownership of 'agatha.txt': Operation not permitted
Ora vediamo come utilizzare il comando chown con esempi.
Ecco il set di esempio che userò:
-rw-r--r-- 1 abhishek abhishek 456 Jan 24 09:30 agatha.txt
drwxr-xr-x 2 abhishek abhishek 4096 Jan 24 09:31 mydir
drwxr-xr-x 3 abhishek abhishek 4096 Jan 24 09:30 new
-rw-r--r-- 1 abhishek abhishek 356 Jan 24 09:30 sherlock.txt
1. Modifica o imposta la proprietà dell'utente di un file
Per modificare la proprietà di un file, utilizzare il comando in questo modo:
sudo chown user_name file_name
È inoltre possibile utilizzare l'UID (ID utente) al posto del nome utente. Ecco un esempio delle modifiche apportate:
[email protected]:~/tutorial$ sudo chown prakash agatha.txt
[email protected]:~/tutorial$ ls -l agatha.txt
-rw-r--r-- 1 prakash abhishek 456 Jan 24 09:30 agatha.txt
Come puoi vedere, il proprietario del file è cambiato in "prakash" da "abhishek" ma il gruppo rimane "abhishek". Lascia che ti mostri come modificare sia la proprietà dell'utente che quella del gruppo.
2. Modifica la proprietà dell'utente e del gruppo
Per modificare la proprietà dell'utente e del gruppo di un file, puoi specificare il gruppo con il nome utente separato da una colonna come questa:
sudo chown user_name:group_name file_name
Ovviamente puoi usare UID e GID invece del nome utente e del gruppo rispettivamente.
[email protected]:~/tutorial$ sudo chown prakash:adm sherlock.txt
[email protected]:~/tutorial$ ls -l sherlock.txt
-rw-r--r-- 1 prakash adm 356 Jan 24 09:30 sherlock.txt
Come puoi vedere nell'esempio sopra, ho cambiato l'utente del file sherlock.txt in "prakash" e il gruppo in "adm".
3. Cambia il gruppo nel gruppo predefinito di un utente
Ogni utente ha un gruppo predefinito o principale. Se l'utente crea un nuovo file o directory, questo gruppo principale diventa automaticamente il proprietario del gruppo del file. Puoi elencare il gruppo predefinito di un utente con il comando id.
Ora, se vuoi cambiare la proprietà del gruppo di un file nel gruppo predefinito di un utente, dovresti semplicemente lasciare il nome del gruppo dopo i due punti.
sudo chown user_name: file_name
Come puoi vedere nell'esempio seguente, il proprietario dell'utente del file sherlock.text "prakash ' e proprietario del gruppo 'adm '. Ho cambiato il proprietario in "abhishek" ma non ho fornito il nome del gruppo. Eppure ha cambiato il gruppo da "adm" al gruppo "abhishek" predefinito.
[email protected]:~/tutorial$ ls -l sherlock.txt
-rw-r--r-- 1 prakash adm 356 Jan 24 09:30 sherlock.txt
[email protected]:~/tutorial$ sudo chown abhishek: sherlock.txt
[email protected]:~/tutorial$ id abhishek
uid=1000(abhishek) gid=1000(abhishek) groups=1000(abhishek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),999(docker)
[email protected]:~/tutorial$ ls -l sherlock.txt
-rw-r--r-- 1 abhishek abhishek 356 Jan 24 09:30 sherlock.txt
4. Cambia solo il gruppo
Se vuoi semplicemente cambiare il gruppo senza essere disturbato dal proprietario dell'utente, puoi usare il comando chown in questo modo:
sudo chown :group_name file_name
Nell'esempio seguente, ho impostato la proprietà del gruppo su sudo senza toccare la proprietà dell'utente:
[email protected]:~/tutorial$ ls -l agatha.txt
-rw-r--r-- 1 prakash abhishek 456 Jan 24 09:30 agatha.txt
[email protected]:~/tutorial$ sudo chown :sudo agatha.txt
[email protected]:~/tutorial$ ls -l agatha.txt
-rw-r--r-- 1 prakash sudo 456 Jan 24 09:30 agatha.txt
5. Modifica ricorsivamente la proprietà di utenti e gruppi di una directory
In tutti i comandi precedenti, puoi sostituire il file con la directory e funzionerà allo stesso modo per cambiare la proprietà della directory.
L'unico problema qui è che per impostazione predefinita la proprietà del contenuto all'interno della directory non viene modificata.
Per modificare la proprietà della directory insieme a tutto il contenuto all'interno della directory, puoi utilizzare l'opzione ricorsiva -R.
sudo chown -R user_name:group_name directory_name
6. Imposta la stessa proprietà di utenti e gruppi come file di riferimento
Puoi utilizzare un file come riferimento e modificare la proprietà dell'utente e del gruppo di un file in base al file di riferimento in questo modo:
sudo chown --reference=file1.txt file2.txt
Nell'esempio seguente, il file agatha.txt è stato utilizzato come riferimento. E come puoi vedere, la proprietà di sherlock.txt è stata modificata sulla base di agatha.txt.
[email protected]:~/tutorial$ ls -l agatha.txt sherlock.txt
-rw-r--r-- 1 prakash sudo 456 Jan 24 09:30 agatha.txt
-rw-r--r-- 1 abhishek abhishek 356 Jan 24 09:30 sherlock.txt
[email protected]:~/tutorial$ sudo chown --reference=agatha.txt sherlock.txt
[email protected]:~/tutorial$ ls -l agatha.txt sherlock.txt
-rw-r--r-- 1 prakash sudo 456 Jan 24 09:30 agatha.txt
-rw-r--r-- 1 prakash sudo 356 Jan 24 09:30 sherlock.txt
Penso che tu abbia abbastanza esempi del comando chown per capirlo. Puoi sempre fare riferimento alla pagina man di chown per maggiori dettagli.
Se hai domande o suggerimenti, fammi sapere.