Hur man använder kommandot chgrp på Linux

Kommandot chgrp på Linux ändrar gruppägandet av en fil eller katalog. Varför använda det istället för chown? Ibland är en schweizisk armékniv bra, men när du verkligen behöver en skalpell är det bara en skalpell som duger.

När du ska använda chgrp

Du använder kommandot chgrp för att ändra gruppägandet av en fil eller katalog. Med kommandot chown kan du ändra användarens ägare och gruppägare för en fil eller katalog. Så varför skulle du behöva eller använda chgrp?

För det första är det lätt. Att använda chown för att bara ändra gruppägarinställningen är lite kontraintuitivt. Du måste vara mycket försiktig med syntaxen. Det beror på korrekt placering av ett kolon ”:”. Ta bort det, och du gör inte den förändring du trodde att du var.

Syntaxen för chgrp är helt enkelt enklare. Den har också en snygg funktion som i enkla ordalag berättar vilka ändringar den just har gjort.

Det är ett specialbyggt och dedikerat verktyg för uppgiften. chgrp omfamnar helt Unix designprincipen att göra en sak och göra det bra. Låt oss se vad den har att erbjuda.

Ändra gruppägandet av en fil

Att ändra gruppägandet av en fil är väldigt enkelt. Du måste använda sudo med chgrp. Grupper ägs inte av användare, så om en fil eller katalog flyttas från en grupp till en annan är inte ett beslut som ligger hos den genomsnittliga användaren. Det är ett jobb för någon med root-privilegier.

Vi kommer att ändra gruppägandet av en C-källfil som heter ”gc.c.” Vi kommer att ändra det till gruppen ”devteam”.

Vi kan kontrollera de aktuella ägarvärdena genom att använda ls med alternativet -l (lång lista).

ls -l

Detta är kommandot för att ändra gruppens ägande. Skriv sudo, ett mellanslag, chgrp, ett mellanslag, namnet på gruppen vi ska ställa in som gruppägare, ett mellanslag och namnet på filen.

sudo chgrp devteam gc.c

Vi kontrollerar att ändringen har gjorts genom att använda ls -l igen.

ls -l

Vi kan se att gruppägandet har ändrats från ”dave” till ”devteam.”

För att ändra gruppägandet för en uppsättning filer på en gång kan du använda jokertecken. Låt oss ändra gruppägandet för alla C-källfiler i den aktuella katalogen. Vi kommer att använda detta kommando:

sudo chgrp devteam *.c

Vi kan kontrollera att ändringen har gjorts som vi förväntade oss genom att använda ls -l.

ls -l

Alla C-källfiler i den här katalogen har ändrats så att deras gruppägande är ”devteam.”

Genom att använda alternativet -c (ändringar) kommer chgrp att lista de ändringar den har gjort i varje fil. Anta att vi gjorde ett misstag, vi ville att C-källfilerna skulle ha sitt gruppägande inställt på ”researchlab.” Låt oss rätta till det nu. Vi använder det här kommandot:

sudo chgrp -c researchlab *.c

Ändringarna görs för oss, och var och en listas när det händer, vilket gör att vi kan verifiera att det vi har ändrat är korrekt.

Ändra gruppägandet av en katalog

Att ändra gruppägandet av en katalog är lika enkelt. Vi kan använda det här kommandot för att ändra gruppägandet för katalogen ”backup”.

sudo chgrp -c devteam ./backup

För att vara tydlig kommer detta kommando att ändra gruppägandet av själva katalogen, inte filerna i katalogen. Vi kommer att använda ls -l med alternativet -d (katalog) för att verifiera att så är fallet.

ls -l -d

Gruppägandet av själva katalogen har ändrats till ”devteam.”

Det rekursiva alternativet

Om vi ​​vill ändra gruppägandet för filerna och katalogerna som är lagrade i en katalog kan vi använda alternativet -R (rekursivt). Detta kommer att få chgrp att ändra gruppägandet för alla filer och underkataloger under målkatalogen.

Låt oss prova detta med ”backup”-katalogen. Här är kommandot:

sudo chgrp -R devteam ./backup

Vi granskar filerna i en av de kapslade underkatalogerna med kommandot ls, och vi kommer också att kontrollera inställningarna för en av de kapslade underkatalogerna genom att använda ls .

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

Vi kan se att gruppägandet har ändrats både för filerna i de kapslade underkatalogerna och för de kapslade underkatalogerna.

Använda en referensfil

Hittills har vi uttryckligen sagt till chgrp namnet på gruppen vi vill använda. Vi kan också använda chgrp på ett sätt som säger ”ställ in gruppägandet av den här filen till samma gruppägande som den filen.”

Låt oss ställa in gruppägandet av ”gc.h” till att vara detsamma som ”gc.c.”

Vi kan kontrollera de aktuella inställningarna för ”gc.c” och ”gc.h” med ls.

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

Alternativet vi behöver använda är alternativet –referens. Gruppägandet kopieras från referensfilen till den andra filen. Var noga med att få filerna åt rätt håll.

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

Vi använder ls för att kontrollera att inställningarna har överförts till ”gc.h.”

ls -l gc.h

Filen ”gc.h” har nu samma gruppägande som ”gc.c.”

Använder chgrp med symboliska länkar

Vi kan använda chgrp för att ändra gruppägandet av symboliska länkar, eller för filen som den symboliska länken pekar på.

För det här exemplet har vi skapat en symbolisk länk kallas ”button_link.” Detta pekar på en fil som heter ”./backup/images/button_about.png.” För att ändra gruppens äganderätt till filen måste vi använda alternativet –dereference. Detta kommer att ändra inställningarna för filen och lämna den symboliska länken oförändrad.

Låt oss kontrollera inställningarna för den symboliska länken med ls -l.

ls -l button_link

Kommandot för att ändra filen är:

sudo chgrp --dereference devteam button_link

Vi kontrollerar att den symboliska länken är oförändrad med ls, och vi kontrollerar också inställningarna för gruppägande för filen.

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

Den symboliska länken är oförändrad och ”button_about.png”-filen har fått sitt gruppägande ändrat.

För att ändra gruppägandet av själva den symboliska länken måste vi använda alternativet –no-dereference.

Kommandot att använda är:

sudo chgrp --no-dereference devteam button_link

Vi använder ls -l för att verifiera att det nya gruppägandet har ställts in för den symboliska länken.

ls -l button-link

Den här gången var det berörda objektet den symboliska länken i sig, inte filen den pekar på.

Fint och enkelt

Enkelt är bra. Det betyder att det finns mindre att komma ihåg och mindre att bli förvirrad med. Det borde betyda färre misstag.