Was ist der chgrp-Befehl unter Linux?
Wenn Sie unseren chmod-Rechner verwendet haben, sind Ihnen die Dateiberechtigungen in Linux bekannt, Sie kennen wahrscheinlich die Gruppeneigentümerschaft.
Der Befehl chgrp in Linux wird zum Ändern der Gruppe einer Datei oder eines Verzeichnisses verwendet. Es steht für „Change Group“.
Die Syntax für den Befehl chgrp lautet:
chgrp [options] groupname file
5 Praktische Beispiele für den chgrp-Befehl unter Linux
Sehen wir uns anhand dieser nützlichen Beispiele an, wie der Befehl chgrp verwendet wird.
1. Gruppe von Dateien/Verzeichnissen ändern
Dies ist die einfachste und vielleicht bekannteste Verwendung von chgrp. Um den Gruppenbesitz einer Datei oder eines Verzeichnisses zu ändern, können Sie den Befehl chgrp folgendermaßen verwenden:
chgrp group_name file_name
Sie können die Gruppe auch für mehrere Dateien gleichzeitig ändern:
chgrp group_name file1 file2 file3
Sie müssen sich nicht im selben Verzeichnis wie die Datei befinden. Sie können auch den absoluten oder relativen Pfad angeben.
Ihre aktuellen Berechtigungen sind wichtig. Wenn Sie versuchen, die Gruppen in „admin“ oder „root“ zu ändern, benötigen Sie möglicherweise Superuser-Rechte. In solchen Fällen sollte der Fehler „Vorgang nicht zulässig“ angezeigt werden.
Tipp :chgrp unterstützt die Tab-Vervollständigung. Geben Sie einfach ein paar Buchstaben für den Gruppennamen ein und drücken Sie die Tabulatortaste, um zu sehen, welche Gruppen mit diesen Buchstaben existieren.
2. Verwenden Sie chgrp rekursiv, um alle Dateien und Unterverzeichnisse zu gruppieren
Wenn Sie chgrp mit einem Verzeichnis verwenden, ändert es standardmäßig nur die Gruppe des Verzeichnisses. Die Dateien und Unterverzeichnisse bleiben gleich.
Wenn Sie die Gruppe aller Dateien in den Verzeichnissen und in den Unterverzeichnissen ändern möchten, können Sie die rekursive Option -R.
verwendenchgrp -R group_name path_to_directory
3. Erfahren Sie, ob Sie es geschafft haben, die Gruppe zu ändern
Sie können herausfinden, ob die Gruppe geändert wurde, indem Sie den Befehl „ls -l“ verwenden. Aber was, wenn Sie die Gruppe für mehrere Dateien auf einmal ändern, wie mit der rekursiven Option, die Sie im vorherigen Abschnitt gesehen haben?
chgrp bietet einen ausführlichen Modus, der Ihnen mitteilt, welche Operationen Ihr chgrp-Befehl ausgeführt hat. Sie können die Option -v verwenden, um den Befehl chgrp im ausführlichen Modus auszuführen.
chgrp -vR abhishek samplechanged group of 'sample/agatha.txt' from sudo to abhishek
group of 'sample/a.text' retained as abhishek
changed group of 'sample/text/sherlock.txt' from sudo to abhishek
changed group of 'sample/text' from sudo to abhishek
changed group of 'sample' from sudo to abhishek
Möglicherweise stellen Sie fest, dass der ausführliche Modus auch angibt, ob die Gruppe einer Datei gleich geblieben ist. Wenn Sie diese Informationen nur für die Dateien sehen möchten, für die tatsächlich eine Änderung des Gruppenbesitzes stattgefunden hat, können Sie die Option -c verwenden.
Tipp :Sie können chgrp verwenden, um einem Befehl die Ausführungsberechtigung zu erteilen (in bin oder in init) oder damit der Befehl von allen Benutzern ausgeführt werden kann, die zu einer bestimmten Gruppe gehören (anstelle von root).
4. Ändern Sie den Gruppenbesitz genauso wie eine Referenzdatei
Stellen Sie sich vor, Sie möchten die Gruppe von Datei A genauso ändern wie Datei B. Wie würden Sie das machen? Sie können nach der Gruppe von Datei B suchen und dann den Befehl chgrp mit dem Gruppennamen von Datei B verwenden.
Nun, das ist eine Möglichkeit, es zu tun. chgrp bietet jedoch eine dedizierte Möglichkeit, die Gruppe basierend auf einer Referenzdatei zu ändern, anstatt den Namen der Gruppe explizit zu verwenden.
chgrp --reference=file2 file1
Dies ist besonders hilfreich, wenn Sie ein Skript schreiben, in dem die Gruppeneigentümer von Dateien als Referenzdatei geändert werden müssen.
5. Verwendung von chgrp mit symbolischen Links
Wenn Sie den Befehl chgrp mit einem symbolischen Link verwenden, wird standardmäßig der Gruppeneigentümer der referenzierten Datei geändert, während die Gruppe des symbolischen Links unverändert bleibt.
Dies ist beispielsweise der Status des Links und seiner referenzierten Datei:
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek abhishek 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
Wenn Sie nun die Gruppe des symbolischen Links wie folgt ändern:
chgrp sudo link.txt
Die Gruppe des symbolischen Links bleibt gleich, während die Gruppe der referenzierten Datei geändert wird.
ls -l agatha.txt link.txt
-r--r--rw- 1 abhishek sudo 457 Aug 10 11:55 agatha.txt
lrwxrwxrwx 1 abhishek abhishek 10 Aug 19 10:19 link.txt -> agatha.txt
Wenn Sie nur den Gruppenbesitz des symbolischen Links und nicht die referenzierte Datei selbst ändern möchten, können Sie die Option -h verwenden.
chgrp -h sudo link.txt
Ich werde es jedoch nicht vorschlagen, da Linkberechtigungen unter Linux keine Bedeutung haben. Hier kommt es auf die referenzierte Datei an.
Warum chgrp verwenden, wenn Sie chown zum Gruppenwechsel verwenden können?
Sie können auch den Befehl chown verwenden, um die Gruppe einer Datei zu ändern, aber das Ändern nur der Gruppe durch den Befehl chown ist kein Standard. Außerdem könnte es verwirrend sein, chown für diesen Zweck zu verwenden. chgrp ist ziemlich einfach und es wird empfohlen, den Befehl chgrp zu verwenden, um die Gruppe einer Datei oder eines Verzeichnisses zu ändern.
Ich hoffe, Ihnen haben die chgrp-Befehlsbeispiele gefallen. Wenn Sie Fragen, Anregungen oder ein einfaches Dankeschön haben, verwenden Sie bitte das Kommentarfeld unten.