Introduzione
Su Linux, ogni file è associato a un proprietario e un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file.
Con il comando chgrp si può modificare il gruppo proprietario di determinati file o cartelle. Questa guida spiega come utilizzare il comando chgrp.
Sintassi del comando chgrp
Il comando chgrp assume la forma seguente:
chgrp [OPTIONS] GROUP FILE
- GROUP - nome del nuovo gruppo o gruppo ID (GID). Il GID numerico deve essere preceduto dal + simbolo.
- FILE - nome di uno o più file.
A differenza del comando chown che consente di modificare il proprietario dell'utente e del gruppo, chgrp cambia solo il proprietario del gruppo.
Per scoprire a quale gruppo appartiene il file, utilizzare il comando ls -l. Solo il root o l'utente con privilegi sudo possono modificare il il gruppo proprietario di un file.
Come modificare il gruppo proprietario di un file
Per modificare il gruppo proprietario del file o di una directory, richiamare il comando chgrp seguito dal nuovo nome del gruppo e dal file di destinazione come argomenti.
Ad esempio, per cambiare il gruppo del file nome_file con nginx eseguire:
chgrp nginx nome_file
Se si esegue il comando con un utente non privilegiato, verrà visualizzato l'errore "Operation not permitted". Per eliminare gli errori, eseguire il comando con l'opzione -f. Per impostazione predefinita, in caso di successo chgrp non produce alcun output.
Puoi anche passare più file come argomenti al comando chgrp:
chgrp nginx cartella_1 nome_file_1 nome_file_2
Utilizzare l'opzione -v per ottenere informazioni sui file che vengono elaborati:
chgrp nginx nome_file_1 nome_file_2
changed group of 'nome_file_1' from www-data to nginx
group of 'nome_file_2' retained as nginx
Per stampare le informazioni solo su quei file che il gruppo cambia effettivamente usa -c invece di -v.
L'ID gruppo numerico (GID) può essere utilizzato al posto del nome utente. L'esempio seguente modifica il gruppo proprietario del file in un nuovo gruppo con GID di 1012:
chgrp +1012 nome_file
Come modificare la proprietà del gruppo Symlink
Di default il comando chgrp modifica il gruppo proprietario del file o cartella target dei collegamenti simbolici, non modifica direttamente il proprietario dei collegamenti simbolici stessi.
Ad esempio, se si tenta di modificare il gruppo del collegamento simbolico link_1 che punta a /etc/nome_file_1, il comando chgrp cambierà la proprietà del file o della directory a cui punta il collegamento simbolico:
chgrp nginx link_1
È probabile che si verifichi un errore simile al seguente: “Cannot dereference ‘link_1’: Permission denied”.
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.
Per modificare la proprietà del gruppo del collegamento simbolico stesso, utilizzare l'opzione -h:
chgrp -h nginx link_1
Come modificare in modo ricorsivo la proprietà del gruppo
Per modificare in modo ricorsivo il gruppo proprietario di tutti i file e le directory in una determinata directory, utilizzare l'opzione -R.
Ad esempio, il seguente comando cambierà il gruppo proprietario di tutti i file e le directory della directory /var/www nel gruppo nginx:
chgrp -R nginx /var/www
Quando viene specificata l'opzione ricorsiva non si effettuano modifiche ai collegamenti simbolici. Per modificare la proprietà del gruppo dei collegamenti simbolici, passare anche l'opzione -h:
chgrp -hR nginx /var/www
Conclusione
In questo tutorial abbiamo visto come utilizzare il comando chgrp su Linux. Per maggiori informazioni digitare nel proprio terminale il seguente comando:
man chgrp