Il chown
Il comando consente di modificare la proprietà dell'utente e/o del gruppo di un determinato file, directory o collegamento simbolico.
In Linux, tutti i file sono associati a un proprietario ea un gruppo e assegnati con diritti di accesso autorizzati per il proprietario del file, i membri del gruppo e altri.
In questo tutorial, ti mostreremo come usare il chown
comando attraverso esempi pratici.
Come usare chown
#
Prima di entrare in come usare il chown
comando, iniziamo esaminando la sintassi di base.
Il chown
le espressioni di comando assumono la forma seguente:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
è il nome utente o l'ID utente (UID) del nuovo proprietario. GROUP
è il nome del nuovo gruppo o l'ID gruppo (GID). FILE(s)
è il nome di uno o più file, directory o collegamenti. Gli ID numerici devono essere preceduti da +
simbolo.
USER
- Se viene specificato solo l'utente, l'utente specificato diventerà il proprietario dei file dati, la proprietà del gruppo non viene modificata.USER:
- Quando il nome utente è seguito da due punti:
e il nome del gruppo non viene fornito, l'utente diventerà il proprietario dei file e la proprietà del gruppo di file verrà modificata nel gruppo di accesso dell'utente.USER:GROUP
- Se vengono specificati sia l'utente che il gruppo (senza spazio tra di essi), la proprietà dell'utente dei file viene modificata nell'utente specificato e la proprietà del gruppo viene modificata nel gruppo specificato.:GROUP
- Se l'Utente viene omesso e il gruppo è preceduto da due punti:
, solo la proprietà del gruppo dei file viene modificata nel gruppo specificato.:
Se solo due punti:
viene fornito, senza specificare l'utente e il gruppo, non viene apportata alcuna modifica.
Per impostazione predefinita, in caso di successo, chown
non produce alcun output e restituisce zero.
Usa ls -l
comando per scoprire chi possiede un file o a quale gruppo appartiene il file:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
Gli utenti normali possono modificare il gruppo del file solo se sono proprietari del file e solo in un gruppo di cui fanno parte. Gli utenti amministrativi possono modificare la proprietà del gruppo di tutti i file.
Come cambiare il proprietario di un file #
Per cambiare il proprietario di un file usa il chown
comando seguito dal nome utente del nuovo proprietario e dal file di destinazione come argomento:
chown USER FILE
Ad esempio, il comando seguente cambierà la proprietà di un file denominato file1
a un nuovo proprietario chiamato linuxize
:
chown linuxize file1
Per modificare la proprietà di più file o directory, specificarli come un elenco separato da spazi. Il comando seguente cambia la proprietà di un file denominato file1
e directory dir1
a un nuovo proprietario chiamato linuxize
:
chown linuxize file1 dir1
L'ID utente numerico (UID) può essere utilizzato al posto del nome utente. L'esempio seguente cambierà la proprietà di un file denominato file2
a un nuovo proprietario con UID 1000
:
chown 1000 file2
Se esiste un proprietario numerico come nome utente, la proprietà verrà trasferita al nome utente. Per evitare questo anteporre all'ID +
:
chown 1000 file2
Come modificare il proprietario e il gruppo di un file #
Per cambiare sia il proprietario che il gruppo di un file usa il chown
comando seguito dal nuovo proprietario e dal gruppo separati da due punti (:
) senza spazi intermedi e il file di destinazione.
chown USER:GROUP FILE
Il comando seguente cambierà la proprietà di un file denominato file1
a un nuovo proprietario chiamato linuxize
e raggruppare users
:
chown linuxize:users file1
Se ometti il nome del gruppo dopo i due punti (:
) il gruppo del file viene modificato nel gruppo di accesso dell'utente specificato:
chown linuxize: file1
Come modificare il gruppo di un file #
Per cambiare solo il gruppo di un file usa il chown
comando seguito da due punti (:
) e il nuovo nome del gruppo (senza spazio tra di loro) e il file di destinazione come argomento:
chown :GROUP FILE
Il comando seguente cambierà il gruppo proprietario di un file denominato file1
a www-data
:
chown :www-data file1
Un altro comando che puoi utilizzare per modificare la proprietà di gruppo dei file è chgrp
.
Come modificare la proprietà dei link simbolici #
Quando l'opzione ricorsiva non viene utilizzata, chown
comando cambia la proprietà del gruppo dei file a cui puntano i collegamenti simbolici, non i collegamenti simbolici stessi.
Ad esempio, se si tenta di modificare il proprietario e il gruppo del collegamento simbolico symlink1
che punta a /var/www/file1
, chown
cambierà la proprietà del file o della directory a cui punta il collegamento simbolico:
chown www-data: symlink1
È probabile che invece di modificare la proprietà del target, venga visualizzato l'errore "cannot dereference" link simbolico1:autorizzazione negata".
L'errore si verifica perché per impostazione predefinita sulla maggior parte delle distribuzioni Linux i collegamenti simbolici sono protetti e non è possibile operare sui file di destinazione. Questa opzione è specificata in /proc/sys/fs/protected_symlinks
. 1
significa abilitato e 0
Disabilitato. Si consiglia di non disabilitare la protezione del collegamento simbolico.
Per modificare la proprietà del gruppo del collegamento simbolico stesso, usa il -h
opzione:
chown -h www-data symlink1
Come modificare ricorsivamente la proprietà del file #
Per operare ricorsivamente su tutti i file e le directory nella directory data, usa il -R
(--recursive
) opzione:
chown -R USER:GROUP DIRECTORY
L'esempio seguente cambierà la proprietà di tutti i file e le sottodirectory in /var/www
directory a un nuovo proprietario e gruppo denominato www-data
:
chown -R www-data: /var/www
Se la directory contiene collegamenti simbolici, passare il -h
opzione:
chown -hR www-data: /var/www
Altre opzioni che possono essere utilizzate quando si modifica ricorsivamente la proprietà della directory sono -H
e -L
.
Se l'argomento è passato a chown
command è un collegamento simbolico che punta a una directory, il -H
opzione farà sì che il comando lo attraversi. -L
dice a chown
per attraversare ogni collegamento simbolico a una directory incontrata. Di solito, non dovresti usare queste opzioni perché potresti rovinare il tuo sistema o creare un rischio per la sicurezza.
Utilizzo di un file di riferimento #
Il --reference=ref_file
l'opzione consente di modificare la proprietà dell'utente e del gruppo di determinati file in modo che corrisponda a quella del file di riferimento specificato (ref_file
). Se il file di riferimento è un collegamento simbolico chown
utilizzerà l'utente e il gruppo del file di destinazione.
chown --reference=REF_FILE FILE
Ad esempio, il comando seguente assegnerà all'utente e al gruppo la proprietà del file1
a file2
chown --reference=file1 file2
Conclusione #
chown
è un'utilità della riga di comando Linux/UNIX per modificare la proprietà dell'utente e/o del gruppo del file.
Per saperne di più sul chown
comando visita la manpage di chown o digita man chown
nel tuo terminale.
Se hai domande o feedback, sentiti libero di lasciare un commento.