Come usare il comando chgrp su Linux

Una finestra del terminale Linux su un laptop
Fatmawati Achmad Zaenuri / Shutterstock.com

Il chgrp il comando su Linux modifica la proprietà del gruppo di un file o directory. Perché usarlo invece di chown ? A volte un coltellino svizzero è eccezionale, ma quando hai davvero bisogno di un bisturi, lo farà solo un bisturi.

Quando dovresti usare chgrp

Si utilizza il chgrp comando per modificare la proprietà del gruppo di un file o directory. Il chown Il comando consente di modificare il proprietario dell'utente e il proprietario del gruppo di un file o directory. Quindi perché dovresti averne bisogno o usare chgrp?

Bene, per prima cosa, è facile. utilizzando chown cambiare solo l'impostazione del proprietario del gruppo è un po 'controintuitivo. Devi stare molto attento con la sintassi. Si basa sul corretto posizionamento di due punti “:”. Hai sbagliato, e non stai apportando il cambiamento che pensavi di essere.

La sintassi di chgrp è del tutto più semplice. Ha anche una caratteristica accurata che ti dice in termini semplici quali cambiamenti ha appena apportato.

È uno strumento appositamente costruito e dedicato per l'attività da svolgere. chgrp abbraccia completamente il principio di progettazione Unix di fare una cosa e farlo bene. Vediamo cosa ha da offrire.

Modifica della proprietà del gruppo di un file

Modificare la proprietà del gruppo di un file è molto semplice. Devi usare sudo con chgrp. I gruppi non sono di proprietà degli utenti, quindi se un file o una directory viene spostato da un gruppo a un altro non è una decisione che spetta all'utente medio. Questo è un lavoro per qualcuno con i privilegi di root.

Modificheremo la proprietà del gruppo di un file sorgente C chiamato “gc.c.” Lo cambieremo nel gruppo “devteam”.

Possiamo verificare i valori di proprietà correnti utilizzando ls con il -l (elenco lungo) opzione.

ls -l

Questo è il comando per modificare la proprietà del gruppo. genere sudo, Uno spazio, chgrp , uno spazio, il nome del gruppo che imposteremo come proprietario del gruppo, uno spazio e il nome del file.

sudo chgrp devteam gc.c

Verificheremo che la modifica sia stata effettuata utilizzando ls -l ancora.

ls -l

sudo chgrp devteam gc.c in una finestra terminale

Possiamo vedere che la proprietà del gruppo è stata cambiata da “dave” a “devteam”.

Per modificare la proprietà del gruppo per un set di file contemporaneamente, è possibile utilizzare i caratteri jolly. Cambiamo la proprietà del gruppo per tutti i file sorgente C nella directory corrente. Useremo questo comando:

sudo chgrp devteam *.c

Possiamo verificare che la modifica sia stata effettuata come previsto utilizzando ls -l.

ls -l

sudo chgrp devteam * .c in una finestra terminale

Tutti i file sorgente C in questa directory sono stati cambiati in modo che la loro proprietà di gruppo sia “devteam”.

Usando il -c (cambia) opzione chgrp elencherà le modifiche apportate a ciascun file. Supponiamo di aver fatto un errore, volevamo che i file sorgente C avessero la proprietà del gruppo impostata su “researchlab”. Correggiamolo ora. Useremo questo comando:

sudo chgrp -c researchlab *.c

sudo chgrp -c researchlab * .c in una finestra terminale

Le modifiche vengono apportate per noi e ognuna viene elencata in tempo reale, consentendoci di verificare che ciò che abbiamo modificato sia corretto.

Modifica della proprietà del gruppo di una directory

Modificare la proprietà del gruppo di una directory è altrettanto semplice. Possiamo usare questo comando per cambiare la proprietà del gruppo per la directory “backup”.

sudo chgrp -c devteam ./backup

Per essere chiari, questo comando cambierà la proprietà del gruppo della directory stessa, non i file all'interno della directory. Noi useremo ls -l con il -d (directory) per verificare che sia così.

ls -l -d

sudo chgrp -c devteam ./backup in una finestra terminale

La proprietà del gruppo della directory stessa è stata cambiata in “devteam”.

L'opzione ricorsiva

Se vogliamo cambiare la proprietà del gruppo per i file e le directory memorizzati in una directory, possiamo usare il -R (ricorsivo) opzione. Questo causerà chgrp per modificare la proprietà del gruppo per tutti i file e le sottodirectory sotto la directory di destinazione.

Proviamo con la directory “backup”. Ecco il comando:

sudo chgrp -R devteam ./backup

Esamineremo il File in una delle sottodirectory nidificate con ls e controlleremo anche le impostazioni di uno dei nidificati sottodirectory usando ls .

ls -l ./backup/images
ls -l -d ./backup/images

sudo chgrp -R devteam ./backup in una finestra terminale

Possiamo vedere che la proprietà del gruppo è stata modificata sia per i file nelle sottodirectory nidificate sia per le sottodirectory nidificate.

Utilizzando un file di riferimento

Finora lo abbiamo detto esplicitamente chgrp il nome del gruppo che desideriamo utilizzare. Possiamo anche usare chgrp in un modo che dice “imposta la proprietà del gruppo di Questo file dello stesso gruppo di proprietà di quello file.”

Impostiamo la proprietà del gruppo di “gc.h” in modo che sia uguale a “gc.c.”

Possiamo controllare le impostazioni correnti di “gc.c” e “gc.h” utilizzando ls.

ls -l gc.c
ls -l gc.h

L'opzione che dobbiamo usare è la --reference opzione. La proprietà del gruppo viene copiata a partire dal il file di riferimento per l'altro file. Fai attenzione a ottenere i file nel modo giusto.

sudo chgrp --reference=gc.c gc.h

Useremo ls per verificare che le impostazioni siano state trasferite su “gc.h.”

ls -l gc.h

sudo chgrp --reference = gc.c gc.h in una finestra terminale

Il file “gc.h” ora ha lo stesso gruppo di proprietà di “gc.c.”

Usare chgrp con i collegamenti simbolici

Possiamo usare chgrp per modificare la proprietà del gruppo di collegamenti simbolici o del file indicato dal collegamento simbolico.

Per questo esempio, abbiamo creato un link simbolico chiamato “button_link”. Questo punta a un file chiamato “./backup/images/button_about.png.” Per modificare la proprietà del gruppo del file, dobbiamo usare il --dereference opzione. Ciò modificherà le impostazioni per il file e lascia invariato il collegamento simbolico.

Controlliamo le impostazioni per il collegamento simbolico utilizzando ls -l.

ls -l button_link

Il comando per modificare il file è:

sudo chgrp --dereference devteam button_link

Verificheremo che il collegamento simbolico sia invariato utilizzando ls e controlleremo anche le impostazioni di proprietà del gruppo per il file.

ls -l button_link
ls -l ./backup/images/button_about.png

sudo chgrp --dereference devteam button_link in una finestra terminale

Il collegamento simbolico è invariato e il file “button_about.png” ha subito la modifica della proprietà del gruppo.

Per modificare la proprietà del gruppo del collegamento simbolico stesso, dobbiamo usare il --no-dereference opzione.

Il comando da usare è:

sudo chgrp --no-dereference devteam button_link

Useremo ls -l per verificare che la nuova proprietà del gruppo sia stata impostata per il collegamento simbolico.

ls -l button-link

sudo chgrp --no-dereference devteam button_link in una finestra terminale

Questa volta l'elemento interessato era il collegamento simbolico stesso, non il file a cui punta.

Bello e semplice

Semplice è buono. Significa che c'è meno da ricordare e meno da confondere. Ciò dovrebbe significare meno errori.

Articoli correlati

Ultimi articoli