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...
GRUPPEist der Name der neuen Gruppe oder die numerische Gruppen-ID (GID).DATEIist 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.
Symbolische Links
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
| Option | Beschreibung |
|---|---|
-R | Rekursiv alle Dateien und Unterverzeichnisse ändern |
-h | Symbolischen Link selbst ändern statt Ziel |
-v | Alle Aktionen anzeigen |
-c | Nur tatsächliche Änderungen anzeigen |
-f | Fehlermeldungen 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