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:
example@unixlinux.online:~/tutorial$ sudo chown prakash agatha.txt
example@unixlinux.online:~/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.
example@unixlinux.online:~/tutorial$ sudo chown prakash:adm sherlock.txt
example@unixlinux.online:~/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.
example@unixlinux.online:~/tutorial$ ls -l sherlock.txt
-rw-r--r-- 1 prakash adm 356 Jan 24 09:30 sherlock.txt
example@unixlinux.online:~/tutorial$ sudo chown abhishek: sherlock.txt
example@unixlinux.online:~/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)
example@unixlinux.online:~/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:
example@unixlinux.online:~/tutorial$ ls -l agatha.txt
-rw-r--r-- 1 prakash abhishek 456 Jan 24 09:30 agatha.txt
example@unixlinux.online:~/tutorial$ sudo chown :sudo agatha.txt
example@unixlinux.online:~/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.
example@unixlinux.online:~/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
example@unixlinux.online:~/tutorial$ sudo chown --reference=agatha.txt sherlock.txt
example@unixlinux.online:~/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.