So verwenden Sie den Befehl chgrp unter Linux

Der Befehl chgrp unter Linux ändert den Gruppenbesitz einer Datei oder eines Verzeichnisses. Warum es anstelle von Chown verwenden? Manchmal ist ein Schweizer Taschenmesser großartig, aber wenn Sie wirklich ein Skalpell brauchen, reicht nur ein Skalpell.

Wann Sie chgrp . verwenden sollten

Sie verwenden den Befehl chgrp, um den Gruppenbesitz einer Datei oder eines Verzeichnisses zu ändern. Mit dem Befehl chown können Sie den Benutzerbesitzer und den Gruppenbesitzer einer Datei oder eines Verzeichnisses ändern. Warum sollten Sie also chgrp benötigen oder verwenden?

Nun, zum einen ist es einfach. Die Verwendung von chown, um nur die Gruppenbesitzereinstellung zu ändern, ist ein wenig kontraintuitiv. Sie müssen sehr vorsichtig mit der Syntax sein. Es kommt auf die richtige Platzierung eines Doppelpunkts „:“ an. Wenn Sie das verlegen, nehmen Sie nicht die Änderung vor, von der Sie dachten, dass Sie sie wären.

Die Syntax von chgrp ist insgesamt einfacher. Es hat auch eine nette Funktion, die Ihnen in einfachen Worten sagt, welche Änderungen gerade vorgenommen wurden.

Es ist ein speziell entwickeltes und dediziertes Werkzeug für die jeweilige Aufgabe. chgrp umarmt vollständig das Unix-Entwurfsprinzip, eine Sache zu tun und sie gut zu machen. Mal sehen, was es zu bieten hat.

Ändern des Gruppenbesitzes einer Datei

Das Ändern des Gruppenbesitzes einer Datei ist sehr einfach. Sie müssen sudo mit chgrp verwenden. Gruppen gehören nicht den Benutzern. Ob eine Datei oder ein Verzeichnis von einer Gruppe in eine andere verschoben wird, liegt also nicht im Ermessen des durchschnittlichen Benutzers. Das ist ein Job für jemanden mit Root-Rechten.

Wir werden den Gruppenbesitz einer C-Quelldatei namens „gc.c“ ändern. Wir werden es in die Gruppe „devteam“ ändern.

  So überprüfen Sie Systemprotokolle unter Linux

Wir können die aktuellen Eigentumswerte überprüfen, indem wir ls mit der Option -l (lange Auflistung) verwenden.

ls -l

Dies ist der Befehl zum Ändern des Gruppenbesitzes. Geben Sie sudo, ein Leerzeichen, chgrp , ein Leerzeichen, den Namen der Gruppe, die wir als Gruppenbesitzer festlegen werden, ein Leerzeichen und den Namen der Datei ein.

sudo chgrp devteam gc.c

Wir überprüfen, ob die Änderung vorgenommen wurde, indem wir erneut ls -l verwenden.

ls -l

Wir können sehen, dass der Gruppenbesitz von „dave“ auf „devteam“ geändert wurde.

Um den Gruppenbesitz für mehrere Dateien auf einmal zu ändern, können Sie Platzhalter verwenden. Lassen Sie uns den Gruppenbesitz für alle C-Quelldateien im aktuellen Verzeichnis ändern. Wir werden diesen Befehl verwenden:

sudo chgrp devteam *.c

Wir können überprüfen, ob die Änderung wie erwartet vorgenommen wurde, indem wir ls -l verwenden.

ls -l

Alle C-Quelldateien in diesem Verzeichnis wurden geändert, sodass ihr Gruppenbesitz „devteam“ ist.

Mit der Option -c (Änderungen) listet chgrp die Änderungen auf, die es an jeder Datei vorgenommen hat. Angenommen, wir haben einen Fehler gemacht, wir wollten, dass die Gruppeneigentümerschaft der C-Quelldateien auf „researchlab“ gesetzt wird. Lass uns das jetzt korrigieren. Wir verwenden diesen Befehl:

sudo chgrp -c researchlab *.c

Die Änderungen werden für uns vorgenommen und jede einzelne wird so aufgelistet, wie sie geschieht, sodass wir überprüfen können, ob die Änderungen richtig sind.

Ändern des Gruppenbesitzes eines Verzeichnisses

Ebenso einfach ist es, den Gruppenbesitz eines Verzeichnisses zu ändern. Mit diesem Befehl können wir den Gruppenbesitz für das Verzeichnis „backup“ ändern.

sudo chgrp -c devteam ./backup

Um es klarzustellen, dieser Befehl ändert den Gruppenbesitz des Verzeichnisses selbst, nicht die Dateien innerhalb des Verzeichnisses. Wir verwenden ls -l mit der Option -d (Verzeichnis), um zu überprüfen, ob dies der Fall ist.

ls -l -d

Der Gruppenbesitz des Verzeichnisses selbst wurde in „devteam“ geändert.

  Die 5 besten VirtualBox-Alternativen unter Linux

Die rekursive Option

Wenn wir den Gruppenbesitz für die in einem Verzeichnis gespeicherten Dateien und Verzeichnisse ändern möchten, können wir die Option -R (rekursiv) verwenden. Dadurch ändert chgrp den Gruppenbesitz für alle Dateien und Unterverzeichnisse unterhalb des Zielverzeichnisses.

Versuchen wir dies mit dem Verzeichnis „backup“. Hier ist der Befehl:

sudo chgrp -R devteam ./backup

Wir überprüfen die Dateien in einem der verschachtelten Unterverzeichnisse mit dem Befehl ls und überprüfen auch die Einstellungen eines der verschachtelten Unterverzeichnisse mit ls .

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

Wir können sehen, dass sich der Gruppenbesitz sowohl für die Dateien in den verschachtelten Unterverzeichnissen als auch für die verschachtelten Unterverzeichnisse geändert hat.

Verwenden einer Referenzdatei

Bisher haben wir chgrp explizit den Namen der Gruppe mitgeteilt, die wir verwenden möchten. Wir können chgrp auch so verwenden, dass „den Gruppenbesitz dieser Datei auf den gleichen Gruppenbesitz wie dieser Datei gesetzt wird“.

Lassen Sie uns den Gruppenbesitz von „gc.h“ auf den gleichen Wert wie „gc.c“ setzen.

Die aktuellen Einstellungen von „gc.c“ und „gc.h“ können wir mit ls überprüfen.

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

Die Option, die wir verwenden müssen, ist die Option –reference. Der Gruppenbesitz wird aus der Referenzdatei in die andere Datei kopiert. Achten Sie darauf, die Dateien richtig herum zu bekommen.

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

Wir verwenden ls, um zu überprüfen, ob die Einstellungen auf „gc.h“ übertragen wurden.

ls -l gc.h

Die Datei „gc.h“ hat jetzt denselben Gruppenbesitz wie „gc.c“.

  So integrieren Sie Thunderbird mit Tor unter Linux

Verwenden von chgrp mit symbolischen Links

Wir können chgrp verwenden, um den Gruppenbesitz von symbolischen Links oder der Datei, auf die der symbolische Link zeigt, zu ändern.

Für dieses Beispiel haben wir a . erstellt symbolischer Link namens „button_link“. Dies verweist auf eine Datei namens „./backup/images/button_about.png“. Um den Gruppenbesitz der Datei zu ändern, müssen wir die Option –dereference verwenden. Dadurch werden die Einstellungen für die Datei geändert und der symbolische Link bleibt unverändert.

Lassen Sie uns die Einstellungen für den symbolischen Link mit ls -l überprüfen.

ls -l button_link

Der Befehl zum Ändern der Datei lautet:

sudo chgrp --dereference devteam button_link

Wir überprüfen mit ls, ob der symbolische Link unverändert ist, und wir überprüfen auch die Gruppenbesitzeinstellungen für die Datei.

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

Der symbolische Link ist unverändert, und die Gruppeneigenschaft der Datei „button_about.png“ wurde geändert.

Um den Gruppenbesitz des symbolischen Links selbst zu ändern, müssen wir die Option –no-dereference verwenden.

Der zu verwendende Befehl lautet:

sudo chgrp --no-dereference devteam button_link

Wir verwenden ls -l, um zu überprüfen, ob der neue Gruppenbesitz für den symbolischen Link festgelegt wurde.

ls -l button-link

Diesmal war das betroffene Element der symbolische Link selbst, nicht die Datei, auf die er verweist.

Schön und einfach

Einfach ist gut. Es bedeutet, dass man sich weniger merken muss und weniger verwechselt werden muss. Das sollte weniger Fehler bedeuten.