In Linux, ogni file è associato a un proprietario e a un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file.
Questo articolo spiega come usare chgrp
comando per modificare la proprietà del gruppo di determinati file.
chgrp
Sintassi del comando #
Il chgrp
il comando assume la forma seguente:
chgrp [OPTIONS] GROUP FILE..
GROUP
, il nome del nuovo gruppo o l'ID gruppo (GID). Il GID numerico deve essere preceduto dal+
simbolo.FILE..
, nome di uno o più file.
A differenza del chown
comando che consente di modificare la proprietà dell'utente e del gruppo, chgrp
cambia solo la proprietà del gruppo.
Per scoprire a quale gruppo appartiene il file, usa ls -l
comando.
Gli utenti regolari 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 modificare la proprietà del gruppo di file #
Per modificare la proprietà del gruppo di un file o di una directory, richiamare chgrp
comando seguito dal nuovo nome del gruppo e dal file di destinazione come argomenti.
Ad esempio, per modificare il gruppo del file filename
a www-data
correresti:
chgrp www-data filename
Se esegui il comando con un utente senza privilegi, riceverai un errore "Operazione non consentita". Per eliminare il messaggio di errore, invoca il comando con -f
opzione. Per impostazione predefinita, in caso di successo, chgrp
non produce alcun output e restituisce zero.
Puoi anche passare più file come argomenti a chgrp
comando:
chgrp www-data file1 file2 dir1
Usa il -v
opzione per ottenere informazioni sui file che vengono elaborati:
chgrp www-data file1 file2
changed group of 'file1' from nginx to www-data
group of 'file2' retained as www-data
Per stampare le informazioni solo su quei file il cui gruppo effettivamente cambia usa -c
invece di -v
.
L'ID gruppo numerico (GID) può essere utilizzato al posto del nome utente. L'esempio seguente cambia la proprietà del gruppo del file in un nuovo gruppo con GID di 1000:
chgrp +1000 filename
Come modificare la proprietà del gruppo di collegamenti simbolici #
Quando non opera in modo ricorsivo, il comportamento predefinito di chgrp
il comando è quello di modificare la proprietà del gruppo delle destinazioni del collegamento simbolico, non i collegamenti simbolici stessi.
Ad esempio, se si tenta di modificare il gruppo del collegamento simbolico symlink1
che punta a /opt/file1
, chgrp
cambierà la proprietà del file o della directory a cui punta il collegamento simbolico:
chgrp www-data symlink1
È probabile che invece di modificare il gruppo di destinazione, 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:
chgrp -h www-data symlink1
Come modificare ricorsivamente la proprietà del gruppo #
Per modificare in modo ricorsivo la proprietà del gruppo di tutti i file e le directory in una determinata directory, utilizzare il -R
opzione.
Ad esempio, il comando seguente cambierà la proprietà di tutti i file e le directory sotto /var/www
directory al www-data
gruppo:
chgrp -R www-data /var/www
Quando l'opzione ricorsiva è specificata chgrp
non attraverserà i collegamenti simbolici e non apporterà modifiche ai collegamenti simbolici. Per modificare la proprietà del gruppo dei link simbolici, passa il -h
opzione:
chgrp -hR www-data /var/www
Altre opzioni che possono essere utilizzate quando si modifica ricorsivamente la proprietà del gruppo sono -H
e -L
.
Se l'argomento è passato a chgrp
comando è un collegamento simbolico, il -H
opzione farà sì che il comando lo attraversi. -L
dice a chgrp
per attraversare ogni collegamento simbolico a una directory incontrata. Nella maggior parte dei casi, non dovresti usare queste opzioni perché potresti rovinare il tuo sistema o creare un rischio per la sicurezza.
Conclusione #
chgrp
cambia la proprietà del gruppo di file, directory e collegamenti simbolici.
Anche se puoi usare il più popolare chown
comando per cambiare il gruppo, chgrp
ha una sintassi semplice e facile da ricordare.
Per ulteriori informazioni su chgrp
comando, visita la pagina man di chgrp o digita man chgrp
nel tuo terminale.
Se hai domande o feedback, sentiti libero di lasciare un commento.