Der Befehl chgrp ändert die Gruppenzugehörigkeit von Dateien und Verzeichnissen. Während chown sowohl Besitzer als auch Gruppe ändern kann, beschränkt sich chgrp auf die Gruppe und ist dabei einfacher in der Handhabung.

Syntax

chgrp [OPTIONEN] GRUPPE DATEI...
  • GRUPPE ist der Name der neuen Gruppe oder die numerische Gruppen-ID (GID).
  • DATEI ist eine oder mehrere Dateien oder Verzeichnisse.

Mit ls -l siehst du, welcher Gruppe eine Datei aktuell angehört. Die Gruppe steht in der vierten Spalte der Ausgabe.

Normale Benutzer können die Gruppe nur ändern, wenn sie Eigentümer der Datei sind und selbst Mitglied der Zielgruppe. Root kann die Gruppe beliebig ändern.

Gruppe einer Datei ändern

Übergib den Gruppennamen und die Zieldatei als Argumente:

chgrp www-data datei.txt

Bei Erfolg gibt chgrp keine Ausgabe aus. Fehlt dir die Berechtigung, erscheint “Operation not permitted”.

Mehrere Dateien änderst du in einem Aufruf:

chgrp www-data datei1.txt datei2.txt verzeichnis/

Wichtige Optionen

Ausführliche Ausgabe mit -v

Mit -v zeigt chgrp an, was es gerade tut:

chgrp -v www-data datei1.txt datei2.txt

Die Ausgabe sieht dann etwa so aus:

Gruppe von 'datei1.txt' von nginx auf www-data geändert
Gruppe von 'datei2.txt' bleibt bei www-data

Mit -c erscheint nur eine Meldung, wenn sich die Gruppe tatsächlich geändert hat.

Numerische Gruppen-ID verwenden

Statt des Gruppennamens kannst du auch die GID angeben. Stelle dafür ein + voran:

chgrp +1000 datei.txt

Rekursive Änderung mit -R

Um die Gruppe für ein Verzeichnis und alle darin enthaltenen Dateien zu ändern, nutze die Option -R:

chgrp -R www-data /var/www/

Dieser Befehl ändert die Gruppe von /var/www/ und allen Unterverzeichnissen und Dateien.

Standardmäßig folgt chgrp symbolischen Links und ändert die Gruppe der Zieldatei, nicht des Links selbst. Mit der Option -h änderst du stattdessen die Gruppe des Links:

chgrp -h www-data symlink

Bei rekursiver Änderung kombinierst du beide Optionen:

chgrp -hR www-data /var/www/

Eine Besonderheit: Die meisten Distributionen schützen symbolische Links. Wenn du versuchst, über einen Link die Gruppe der Zieldatei zu ändern, kann die Fehlermeldung “cannot dereference: Permission denied” erscheinen. Das ist ein Sicherheitsmechanismus und sollte aktiviert bleiben.

Zusammenfassung

OptionBeschreibung
-RRekursiv alle Dateien und Unterverzeichnisse ändern
-hSymbolischen Link selbst ändern statt Ziel
-vAlle Aktionen anzeigen
-cNur tatsächliche Änderungen anzeigen
-fFehlermeldungen unterdrücken

Der Befehl chgrp ist einfacher als chown, wenn du nur die Gruppe ändern willst. Die vollständige Dokumentation findest du in der Manpage:

man chgrp