Sådan bruger du chgrp-kommandoen på Linux

chgrp-kommandoen på Linux ændrer gruppeejerskabet af en fil eller et bibliotek. Hvorfor bruge det i stedet for chown? Nogle gange er en schweizisk hærkniv fantastisk, men når du virkelig har brug for en skalpel, vil kun en skalpel duge.

Hvornår skal du bruge chgrp

Du bruger kommandoen chgrp til at ændre gruppeejerskabet af en fil eller et bibliotek. Med chown-kommandoen kan du ændre brugerejeren og gruppeejeren af ​​en fil eller et bibliotek. Så hvorfor skulle du bruge eller bruge chgrp?

Nå, for det første er det nemt. Det er lidt kontraintuitivt at bruge chown til kun at ændre gruppeejerindstillingen. Du skal være meget forsigtig med syntaksen. Det afhænger af den korrekte placering af et kolon “:”. Forlagt det, og du laver ikke den ændring, du troede, du var.

Syntaksen for chgrp er helt mere ligetil. Den har også en smart funktion, der i enkle vendinger fortæller dig, hvilke ændringer den lige har foretaget.

Det er et specialbygget og dedikeret værktøj til den aktuelle opgave. chgrp omfavner fuldstændig Unix-designprincippet om at gøre én ting og gøre det godt. Lad os se, hvad det har at tilbyde.

Ændring af gruppeejerskab af en fil

At ændre gruppeejerskabet af en fil er meget ligetil. Du skal bruge sudo med chgrp. Grupper ejes ikke af brugere, så om en fil eller et bibliotek flyttes fra en gruppe til en anden er ikke en beslutning, der ligger hos den gennemsnitlige bruger. Det er et job for en med root-privilegier.

  Sådan bruges ZFS-filsystemet på Linux

Vi vil ændre gruppeejerskabet af en C-kildefil kaldet “gc.c.” Vi vil ændre det til “devteam”-gruppen.

Vi kan kontrollere de nuværende ejerskabsværdier ved at bruge ls med muligheden -l (lang liste).

ls -l

Dette er kommandoen til at ændre gruppeejerskabet. Skriv sudo, et mellemrum, chgrp, et mellemrum, navnet på den gruppe, vi vil indstille som gruppeejer, et mellemrum og navnet på filen.

sudo chgrp devteam gc.c

Vi kontrollerer, at ændringen er foretaget ved at bruge ls -l igen.

ls -l

Vi kan se, at gruppeejerskabet er blevet ændret fra “dave” til “devteam.”

For at ændre gruppeejerskabet for et sæt filer på én gang kan du bruge jokertegn. Lad os ændre gruppeejerskabet for alle C-kildefilerne i den aktuelle mappe. Vi vil bruge denne kommando:

sudo chgrp devteam *.c

Vi kan kontrollere, at ændringen er foretaget som forventet ved at bruge ls -l.

ls -l

Alle C-kildefilerne i denne mappe er blevet ændret, så deres gruppeejerskab er “devteam.”

Ved at bruge -c (ændringer) indstillingen vil chgrp liste de ændringer, den har lavet til hver fil. Antag, at vi lavede en fejl, vi ønskede, at C-kildefilerne skulle have deres gruppeejerskab sat til “researchlab.” Lad os rette op på det nu. Vi bruger denne kommando:

sudo chgrp -c researchlab *.c

Ændringerne er lavet for os, og hver enkelt er listet, efterhånden som det sker, så vi kan bekræfte, at det, vi har ændret, er korrekt.

  Sådan finder du sangtekster på Linux med Lyrics Finder

Ændring af gruppeejerskab af en adressebog

Ændring af gruppeejerskab af et bibliotek er lige så enkelt. Vi kan bruge denne kommando til at ændre gruppeejerskabet for mappen “backup”.

sudo chgrp -c devteam ./backup

For at være klar, vil denne kommando ændre gruppeejerskabet af selve mappen, ikke filerne inde i mappen. Vi vil bruge ls -l med muligheden -d (mappe) for at bekræfte, at dette er tilfældet.

ls -l -d

Gruppeejerskabet af selve mappen er blevet ændret til “devteam.”

Den rekursive mulighed

Hvis vi ønsker at ændre gruppeejerskabet for de filer og mapper, der er gemt i en mappe, kan vi bruge -R (rekursiv) mulighed. Dette vil få chgrp til at ændre gruppeejerskabet for alle filer og undermapper under målmappen.

Lad os prøve dette med “backup”-mappen. Her er kommandoen:

sudo chgrp -R devteam ./backup

Vi gennemgår filerne i en af ​​de indlejrede undermapper med ls-kommandoen, og vi vil også kontrollere indstillingerne for en af ​​de indlejrede undermapper ved at bruge ls .

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

Vi kan se, at gruppeejerskabet er blevet ændret både for filerne i de indlejrede undermapper og for de indlejrede undermapper.

Brug af en referencefil

Indtil videre har vi eksplicit fortalt chgrp navnet på den gruppe, vi ønsker at bruge. Vi kan også bruge chgrp på en måde, der siger “indstil gruppeejerskabet af denne fil til det samme gruppeejerskab som den fil.”

Lad os indstille gruppeejerskabet af “gc.h” til at være det samme som “gc.c.”

Vi kan kontrollere de aktuelle indstillinger for “gc.c” og “gc.h” ved hjælp af ls.

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

Den mulighed, vi skal bruge, er -referenceindstillingen. Gruppeejerskabet kopieres fra referencefilen til den anden fil. Sørg for at få filerne den rigtige vej rundt.

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

Vi bruger ls til at kontrollere, at indstillingerne er blevet overført til “gc.h.”

ls -l gc.h

Filen “gc.h” har nu samme gruppeejerskab som “gc.c.”

  Sådan sikkerhedskopieres en virtuel maskine på Linux med VirtualBox

Brug af chgrp med symbolske links

Vi kan bruge chgrp til at ændre gruppeejerskabet af symbolske links eller af filen, der peges på af det symbolske link.

Til dette eksempel har vi lavet en symbolsk link kaldet “button_link”. Dette peger på en fil kaldet “./backup/images/button_about.png.” For at ændre gruppeejerskabet af filen skal vi bruge –dereference-indstillingen. Dette vil ændre indstillingerne for filen og forlade det symbolske link uændret.

Lad os tjekke indstillingerne for det symbolske link ved hjælp af ls -l.

ls -l button_link

Kommandoen til at ændre filen er:

sudo chgrp --dereference devteam button_link

Vi kontrollerer, at det symbolske link er uændret ved hjælp af ls, og vi kontrollerer også gruppeejerskabsindstillingerne for filen.

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

Det symbolske link er uændret, og “button_about.png”-filen har fået ændret sit gruppeejerskab.

For at ændre gruppeejerskabet af selve det symbolske link, skal vi bruge muligheden –no-dereference.

Kommandoen der skal bruges er:

sudo chgrp --no-dereference devteam button_link

Vi bruger ls -l til at bekræfte, at det nye gruppeejerskab er blevet indstillet til det symbolske link.

ls -l button-link

Denne gang var det berørte element selve det symbolske link, ikke filen, det peger på.

Fint og enkelt

Simpelt er godt. Det betyder, at der er mindre at huske og mindre at blive forvirret med. Det burde betyde færre fejl.