
Nei sistemi operativi simili a Linux e Unix, tutti i file, le directory e i processi (che sono di nuovo file) sono di proprietà degli utenti. Il gruppo è un insieme di utenti che condividono gli stessi permessi di accesso (cioè lettura, scrittura ed esecuzione) per quegli oggetti (file/directory).
Il comando chown viene utilizzato in Linux per modificare la proprietà dell'utente e del gruppo di file, directory e collegamenti simbolici.
In questo tutorial ti mostrerò come usare il comando chown con alcuni esempi pratici.
Sintassi Chown
Controlliamo la sintassi di base del comando chown come segue:
chown [OPTIONS] USER[:GROUP] FILE/DIRECTORY
Puoi eseguire ls -l
comando per stampare i dettagli sulla proprietà del file.
Nell'output seguente, puoi vedere che il file 'myfile.txt' è di proprietà dell'utente 'tom' e il gruppo è di proprietà di 'developers':
$ ls -l
-rw-r--r-- 1 tom developers 0 Apr 4 01:35 myfile.txt
Modifica la proprietà di un file
Per modificare la proprietà di un file, usa chown con il nuovo nome del proprietario e il nome del file per il quale il proprietario deve essere cambiato.
Il comando seguente cambia la proprietà del file denominato 'myfile.txt' in un nuovo utente 'tom':
# chown tom myfile.txt
Se il comando viene eseguito correttamente, non visualizzerà alcun output sul terminale. Verifica usando ls -l
comando come segue:
# ls -l myfile.txt
-rw-r--r-- 1 tom root 623 Dec 10 2012 myfile.txt
Cambiare il proprietario e il gruppo di un file
Se il proprietario è seguito da due punti (:
) e un nome di gruppo (senza spazi), viene modificato anche il nome del gruppo.
L'esempio seguente mostra come modificare il proprietario e il gruppo per il file denominato 'myfile.txt':
# chown tom:developers myfile.txt
Ora il nuovo proprietario del file è "tom" e il nuovo proprietario del gruppo è il gruppo "sviluppatori".
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 424 Dec 10 2012 myfile.txt
Se rimuovi il nome del gruppo dopo i due punti, il gruppo del file viene modificato nel gruppo di accesso dell'utente specificato:
# chown tom: myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom tom 453 Dec 10 2012 myfile.txt
Se vengono menzionati i due punti (:) e il gruppo, viene modificato solo il gruppo del file. In questo caso, il comando funziona come il comando chgrp.
# chown :developers myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 1579 Dec 10 2012 myfile.txt
Cambia la proprietà delle directory in modo ricorsivo
Per applicare la proprietà in modo ricorsivo a tutti i file e le directory in una determinata directory, utilizzare -R
opzione
Nell'esempio seguente, la proprietà di tutti i file e le directory in '/var/www/html' verrà modificata in modo ricorsivo in 'linoxide' e la proprietà del gruppo in 'www-data':
# chown linoxide:www-data -R /var/www/html
Risultato dettagliato
Il --verbose
l'opzione mostra tutte le modifiche di proprietà sul terminale. Emette la diagnostica per ogni file elaborato.
Ad esempio:
# chown -R --verbose jones /home/jones/
changed ownership of `/home/jones/hello' to jones
changed ownership of `/home/jones/.emacs' to jones
changed ownership of `/home/jones/.bash_history' to jones
changed ownership of `/home/jones/.bash_logout' to jones
changed ownership of `/home/jones/.bashrc' to jones
changed ownership of `/home/jones/file1' to jones
L'opzione dettagliata restituisce l'elaborazione di ciascun file anche quando non vengono apportate modifiche. Ma con -c
o --changes
opzione, l'output viene segnalato solo quando vengono apportate modifiche.
Cambia la proprietà per i link simbolici
Per impostazione predefinita chown
il comando non cambierà la proprietà dei collegamenti simbolici, ma cambia la proprietà sul file di destinazione. Chmod ha un'opzione -h
che può essere utilizzato per modificare la proprietà dei collegamenti simbolici.
Controlla il seguente esempio:
# chown -h tom vmlinuz
# ls -l
total 0
lrwxrwxrwx 1 tom root 31 Apr 5 00:50 vmlinuz -> /boot/vmlinuz-4.15.0-88-generic
Cambia proprietà come file di riferimento
Puoi fare riferimento a un file da cui chown
copia lo stesso utente e la stessa proprietà del gruppo in un nuovo file.
Nel seguente comando --reference=myfile1.txt
opzione per fornire il file di riferimento e la proprietà assegnata al file denominato 'myfile2.txt':
# chown --reference=myfile1.txt myfile2.txt
Funzionamento silenzioso
Un utente normale non può modificare la proprietà di file di proprietà di altri. Quindi viene visualizzato un errore quando un utente normale tenta di modificare la proprietà.
[tom@node051 ~]$ chown tom /etc/
chown: changing ownership of `/etc/': Operation not permitted
Ma se usiamo -f
o --silent
o --silent
opzione, l'errore non viene visualizzato.
[tom@node051 ~]$ chown -f tom /etc/
[tom@node051 ~]$
Come preservare la radice
Il comando Chmod ha un'opzione --preserve-root
per evitare che chmod agisca ricorsivamente su /
. Questa opzione dovrebbe essere usata con -R
opzione per avere effetto.
[root@node051 ~]# chown -c --preserve-root tom /
changed ownership of '/' from root to tom
Solo i permessi del /
verrà modificata e la proprietà di file e directory all'interno di /
rimarrà lo stesso.
[root@node051 ~]# ls -ld /
drwxr-xr-x 23 tom root 4096 Feb 19 14:36 /
[root@node051 ~]# ls -l
total 88
drwxr-xr-x 2 root root 4096 Feb 19 14:33 bin
drwxr-xr-x 3 root root 4096 Feb 19 14:36 boot
drwxr-xr-x 16 root root 3660 Mar 28 11:09 dev
drwxr-xr-x 90 root root 4096 Apr 4 02:28 etc
drwxr-xr-x 2 root root 4096 Feb 19 14:35 home
lrwxrwxrwx 1 root root 33 Feb 19 14:35 initrd.img -> boot/initrd.img-4.15.0-88-generic
lrwxrwxrwx 1 root root 33 Feb 19 14:29 initrd.img.old -> boot/initrd.img-4.15.0-76-generic
drwxr-xr-x 22 root root 4096 Feb 19 14:37 lib
drwxr-xr-x 2 root root 4096 Feb 19 14:28 lib64
drwx------ 2 root root 16384 Feb 19 14:27 lost+found
Conclusione
In questo tutorial, abbiamo imparato come modificare la proprietà di file e directory in Linux. Grazie per la lettura e facci sapere i tuoi commenti.