Hoe de chgrp-opdracht op Linux te gebruiken

Een Linux-terminalvenster op een laptop
Fatmawati Achmad Zaenuri / Shutterstock.com

De chgrp commando op Linux verandert het groepseigendom van een bestand of map. Waarom het gebruiken in plaats van chown ? Soms is een Zwitsers zakmes geweldig, maar als je echt een scalpel nodig hebt, is alleen een scalpel voldoende.

Wanneer u moet gebruiken chgrp

U gebruikt de chgrp opdracht om het groepseigendom van een bestand of map te wijzigen. De chown commando stelt u in staat de eigenaar van de gebruiker te wijzigen en de groepseigenaar van een bestand of map. Dus waarom zou je het nodig hebben of gebruiken chgrp?

Nou, om te beginnen is het gemakkelijk. Gebruik makend van chown alleen de instelling van de groepseigenaar wijzigen is een beetje contra-intuïtief. Je moet heel voorzichtig zijn met de syntaxis. Het hangt af van de juiste plaatsing van een dubbele punt “:”. Plaats dat verkeerd, en je brengt niet de verandering aan die je dacht te zijn.

De syntaxis van chgrp is al met al eenvoudiger. Het heeft ook een handige functie die u in eenvoudige bewoordingen vertelt welke wijzigingen het zojuist heeft aangebracht.

Het is een speciaal gebouwd en speciaal hulpmiddel voor de taak die voorhanden is. chgrp omarmt volledig het Unix-ontwerpprincipe van één ding doen en het goed doen. Laten we eens kijken wat het te bieden heeft.

Het groepseigendom van een bestand wijzigen

Het groepseigendom van een bestand wijzigen is heel eenvoudig. Je moet gebruiken sudo met chgrp. Groepen zijn geen eigendom van gebruikers, dus of een bestand of map van de ene groep naar de andere wordt verplaatst, is geen beslissing die bij de gemiddelde gebruiker ligt. Dat is een taak voor iemand met rootrechten.

We gaan het groepseigendom wijzigen van een C-bronbestand met de naam “gc.c.” We gaan het veranderen in de “devteam” -groep.

We kunnen de huidige eigendomswaarden controleren met ls met de -l (lange lijst) optie.

ls -l

Dit is de opdracht om het groepseigendom te wijzigen. Type sudo, een ruimte, chgrp , een spatie, de naam van de groep die we gaan instellen als de groepseigenaar, een spatie en de naam van het bestand.

sudo chgrp devteam gc.c

We zullen controleren of de wijziging is aangebracht met ls -l nog een keer.

ls -l

sudo chgrp devteam gc.c in een terminalvenster

We kunnen zien dat het groepseigendom is gewijzigd van ‘dave’ in ‘devteam’.

Om het groepseigendom voor een set bestanden in één keer te wijzigen, kunt u jokertekens gebruiken. Laten we het groepseigendom wijzigen voor alle C-bronbestanden in de huidige map. We zullen dit commando gebruiken:

sudo chgrp devteam *.c

We kunnen controleren of de wijziging is aangebracht zoals we hadden verwacht door te gebruiken ls -l.

ls -l

sudo chgrp devteam * .c in een terminalvenster

Alle C-bronbestanden in deze map zijn gewijzigd zodat hun groepseigendom ‘devteam’ is.

Door de -c (wijzigingen) optie chgrp zal een lijst maken van de wijzigingen die het heeft aangebracht in elk bestand. Stel dat we een fout hebben gemaakt, we wilden dat de C-bronbestanden hun groepseigendom hadden ingesteld op ‘researchlab’. Laten we dat nu corrigeren. We gebruiken dit commando:

sudo chgrp -c researchlab *.c

sudo chgrp -c researchlab * .c in een terminalvenster

De wijzigingen worden voor ons aangebracht en elke wijziging wordt in de lijst vermeld, zodat we kunnen controleren of wat we hebben gewijzigd correct is.

Het groepseigendom van een directory wijzigen

Het groepseigendom van een directory wijzigen is net zo eenvoudig. We kunnen deze opdracht gebruiken om het groepseigendom voor de directory “backup” te wijzigen.

sudo chgrp -c devteam ./backup

Voor alle duidelijkheid: dit commando verandert het groepseigendom van de directory zelf, niet de bestanden in de directory. We zullen gebruiken ls -l met de -d (directory) optie om te controleren of dit het geval is.

ls -l -d

sudo chgrp -c devteam ./backup in een terminalvenster

Het groepseigendom van de directory zelf is gewijzigd in ‘devteam’.

De recursieve optie

Als we het groepseigendom willen wijzigen voor de bestanden en mappen die in een map zijn opgeslagen, kunnen we de -R (recursieve) optie. Dit zal leiden tot chgrp om het groepseigendom te wijzigen voor alle bestanden en submappen onder de doelmap.

Laten we dit proberen met de map “backup”. Hier is het commando:

sudo chgrp -R devteam ./backup

We zullen de bestanden in een van de geneste submappen met de extensie ls commando, en we zullen ook de instellingen van een van de geneste submappen door het gebruiken van ls .

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

sudo chgrp -R devteam ./backup in een terminalvenster

We kunnen zien dat het groepseigendom is gewijzigd zowel voor de bestanden in de geneste submappen als voor de geneste submappen.

Met behulp van een referentiebestand

Tot nu toe hebben we het expliciet verteld chgrp de naam van de groep die we willen gebruiken. We kunnen ook gebruik maken van chgrp op een manier die zegt “stel het groepseigendom van in deze bestand naar hetzelfde groepseigendom als dat het dossier.”

Laten we het groepseigendom van “gc.h” instellen op hetzelfde als “gc.c.”

We kunnen de huidige instellingen van “gc.c” en “gc.h” controleren met ls.

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

De optie die we moeten gebruiken is de --reference optie. Het groepseigendom wordt gekopieerd van het referentiebestand naar het andere bestand. Zorg ervoor dat u de bestanden op de juiste manier rond krijgt.

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

We zullen gebruiken ls om te controleren of de instellingen zijn overgebracht naar “gc.h.”

ls -l gc.h

sudo chgrp --reference = gc.c gc.h in een terminalvenster

Het bestand “gc.h” heeft nu hetzelfde groepseigendom als “gc.c.”

Chgrp gebruiken met symbolische koppelingen

We kunnen gebruiken chgrp om het groepseigendom van symbolische links te wijzigen, of van het bestand waarnaar wordt verwezen door de symbolische link.

Voor dit voorbeeld hebben we een symbolische link gemaakt met de naam ‘button_link’. Dit verwijst naar een bestand met de naam “./backup/images/button_about.png.” Om het groepseigendom van het bestand te wijzigen, moeten we de --dereference optie. Hierdoor worden de instellingen voor het bestand gewijzigd en blijft de symbolische link ongewijzigd.

Laten we de instellingen voor de symbolische link controleren met ls -l.

ls -l button_link

De opdracht om het bestand te wijzigen is:

sudo chgrp --dereference devteam button_link

We zullen controleren of de symbolische link ongewijzigd is met ls, en we zullen ook de instellingen voor groepseigendom voor het bestand controleren.

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

sudo chgrp --dereference devteam button_link in een terminalvenster

De symbolische link is ongewijzigd en het groepseigendom van het bestand “button_about.png” is gewijzigd.

Om het groepseigendom van de symbolische link zelf te wijzigen, moeten we de --no-dereference optie.

Het te gebruiken commando is:

sudo chgrp --no-dereference devteam button_link

We zullen gebruiken ls -l om te verifiëren dat het nieuwe groepseigendom is ingesteld voor de symbolische link.

ls -l button-link

sudo chgrp --no-dereference devteam button_link in een terminalvenster

Dit keer was het betreffende item de symbolische link zelf, niet het bestand waarnaar het verwijst.

Lekker eenvoudig

Simpel is goed. Het betekent dat er minder is om te onthouden en minder om mee te verwarren. Dat zou minder fouten moeten opleveren.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in