Slik bruker du chgrp-kommandoen på Linux

chgrp-kommandoen på Linux endrer gruppeeierskapet til en fil eller katalog. Hvorfor bruke det i stedet for chown? Noen ganger er en sveitsisk hærkniv flott, men når du virkelig trenger en skalpell, er det bare en skalpell som duger.

Når du bør bruke chgrp

Du bruker chgrp-kommandoen til å endre gruppeeierskap til en fil eller katalog. Med chown-kommandoen kan du endre brukereier og gruppeeier av en fil eller katalog. Så hvorfor skulle du trenge eller bruke chgrp?

Vel, for det første er det enkelt. Det er litt motintuitivt å bruke chown for å endre bare gruppeeierinnstillingen. Du må være veldig forsiktig med syntaksen. Det avhenger av riktig plassering av et kolon «:». Forlagt det, og du gjør ikke den endringen du trodde du var.

Syntaksen til chgrp er helt greiere. Den har også en fin funksjon som forteller deg på en enkel måte hvilke endringer den nettopp har gjort.

Det er et spesialbygd og dedikert verktøy for oppgaven. chgrp omfavner fullstendig Unix-designprinsippet om å gjøre én ting og gjøre det bra. La oss se hva den har å tilby.

Endre gruppeeierskap for en fil

Å endre gruppeeierskap til en fil er veldig enkelt. Du må bruke sudo med chgrp. Grupper eies ikke av brukere, så om en fil eller katalog flyttes fra en gruppe til en annen er ikke en avgjørelse som ligger hos den gjennomsnittlige brukeren. Det er en jobb for noen med root-privilegier.

  Hvordan rense metadata fra filer på Linux

Vi kommer til å endre gruppeeierskapet til en C-kildefil kalt «gc.c.» Vi kommer til å endre den til «devteam»-gruppen.

Vi kan sjekke gjeldende eierskapsverdier ved å bruke ls med alternativet -l (lang liste).

ls -l

Dette er kommandoen for å endre gruppeeierskap. Skriv sudo, et mellomrom, chgrp , et mellomrom, navnet på gruppen vi skal angi som gruppeeier, et mellomrom og navnet på filen.

sudo chgrp devteam gc.c

Vi kontrollerer at endringen er gjort ved å bruke ls -l igjen.

ls -l

Vi kan se at gruppeeierskapet er endret fra «dave» til «devteam».

For å endre gruppeeierskap for et sett med filer samtidig, kan du bruke jokertegn. La oss endre gruppeeierskapet for alle C-kildefilene i gjeldende katalog. Vi vil bruke denne kommandoen:

sudo chgrp devteam *.c

Vi kan sjekke at endringen er gjort slik vi forventet ved å bruke ls -l.

ls -l

Alle C-kildefilene i denne katalogen er endret slik at gruppeeierskapet deres er «devteam.»

Ved å bruke -c (endringer) alternativet vil chgrp liste endringene den har gjort i hver fil. Anta at vi gjorde en feil, ville vi at C-kildefilene skulle ha gruppeeierskapet satt til «researchlab.» La oss rette det nå. Vi bruker denne kommandoen:

sudo chgrp -c researchlab *.c

Endringene er gjort for oss, og hver av dem er listet opp etterhvert som det skjer, slik at vi kan bekrefte at det vi har endret er riktig.

  Hvordan redigere Hosts-filen på Linux

Endre gruppeeierskap til en katalog

Det er like enkelt å endre gruppeeierskap til en katalog. Vi kan bruke denne kommandoen til å endre gruppeeierskap for katalogen «backup.»

sudo chgrp -c devteam ./backup

For å være tydelig, vil denne kommandoen endre gruppeeierskapet til selve katalogen, ikke filene inne i katalogen. Vi vil bruke ls -l med alternativet -d (katalog) for å bekrefte at dette er tilfelle.

ls -l -d

Gruppeeierskapet til selve katalogen er endret til «devteam.»

Det rekursive alternativet

Hvis vi ønsker å endre gruppeeierskap for filene og katalogene som er lagret i en katalog, kan vi bruke alternativet -R (rekursivt). Dette vil føre til at chgrp endrer gruppeeierskap for alle filer og underkataloger under målkatalogen.

La oss prøve dette med «backup»-katalogen. Her er kommandoen:

sudo chgrp -R devteam ./backup

Vi vil gjennomgå filene i en av de nestede underkatalogene med ls-kommandoen, og vi vil også sjekke innstillingene til en av de nestede underkatalogene ved å bruke ls .

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

Vi kan se at gruppeeierskapet er endret både for filene i de nestede underkatalogene og for de nestede underkatalogene.

Bruke en referansefil

Så langt har vi eksplisitt fortalt chgrp navnet på gruppen vi ønsker å bruke. Vi kan også bruke chgrp på en måte som sier «sett gruppeeierskapet til denne filen til samme gruppeeierskap som den filen.»

La oss sette gruppeeierskapet til «gc.h» til å være det samme som «gc.c».

Vi kan sjekke gjeldende innstillinger for «gc.c» og «gc.h» ved å bruke ls.

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

Alternativet vi må bruke er –referansealternativet. Gruppeeierskapet kopieres fra referansefilen til den andre filen. Pass på å få filene på riktig måte.

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

Vi bruker ls for å sjekke at innstillingene er overført til «gc.h.»

ls -l gc.h

Filen «gc.h» har nå samme gruppeeierskap som «gc.c.»

  Slik eksporterer og importerer du Linux-systemene dine på Windows 10

Bruke chgrp med symbolske lenker

Vi kan bruke chgrp til å endre gruppeeierskap til symbolske lenker, eller til filen som den symbolske lenken viser til.

For dette eksemplet har vi laget en symbolsk lenke kalt «button_link». Dette peker på en fil kalt «./backup/images/button_about.png.» For å endre gruppeeierskap til filen, må vi bruke alternativet –dereference. Dette vil endre innstillingene for filen og la den symbolske lenken være uendret.

La oss sjekke innstillingene for den symbolske lenken ved å bruke ls -l.

ls -l button_link

Kommandoen for å endre filen er:

sudo chgrp --dereference devteam button_link

Vi kontrollerer at den symbolske lenken er uendret ved hjelp av ls, og vi vil også sjekke gruppeeierskapsinnstillingene for filen.

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

Den symbolske lenken er uendret, og «button_about.png»-filen har fått endret gruppeeierskap.

For å endre gruppeeierskapet til selve den symbolske lenken, må vi bruke alternativet –no-dereference.

Kommandoen som skal brukes er:

sudo chgrp --no-dereference devteam button_link

Vi bruker ls -l for å bekrefte at det nye gruppeeierskapet er satt for den symbolske lenken.

ls -l button-link

Denne gangen var det berørte elementet selve den symbolske lenken, ikke filen den peker til.

Fint og enkelt

Enkelt er bra. Det betyr at det er mindre å huske og mindre å bli forvirret med. Det burde bety færre feil.