VMware ESXi and vSphere Cluster Management
Dateieigentümer und Gruppen in Linux mit chown und chgrp ändern
Lerne, wie du unter Linux Dateieigentümer und Eigentümergruppen mit chown und chgrp änderst, rekursive Änderungen sicher ausführst und Ergebnisse mit ls -l prüfst.
Unter Linux besitzt jede Datei und jedes Verzeichnis einen Dateieigentümer und eine Eigentümergruppe. Diese Zuordnung ist ein wichtiger Bestandteil des Berechtigungsmodells. Mit den Befehlen chown und chgrp kannst du diese Werte über die Shell ändern.
Dieses Kapitel zeigt die grundlegende Syntax, typische Anwendungsfälle, rekursive Änderungen und wichtige Sicherheitsregeln.
Grundlagen des Dateibesitzes in Linux
Der Dateieigentümer ist der Benutzeraccount, dem eine Datei oder ein Verzeichnis zugeordnet ist. Die Eigentümergruppe ist eine Gruppe, die ebenfalls mit der Datei verknüpft ist.
Standardmäßig wird der Benutzer, der eine Datei erstellt, zu ihrem Eigentümer. Die Eigentümergruppe wird abhängig von der Systemkonfiguration und dem Verzeichnis festgelegt.
Zusammen mit den Zugriffsrechten bestimmen Eigentümer und Gruppe, wer eine Datei lesen, verändern oder ausführen darf. Die drei Berechtigungsbereiche lauten:
- Eigentümer: Rechte des zugeordneten Benutzeraccounts.
- Gruppe: Rechte für Mitglieder der zugeordneten Gruppe.
- Andere: Rechte für alle übrigen Benutzer.
Zu jedem Bereich können Lese-, Schreib- und Ausführungsrechte gehören. Das Ändern des Eigentümers oder der Gruppe ändert jedoch nicht automatisch die eigentlichen Berechtigungszeichen.
Eigentümer und Gruppe mit ls -l prüfen
Mit ls -l lässt sich die aktuelle Zuordnung anzeigen:
ls -l DATEINAME
Eine beispielhafte Ausgabe kann so aussehen:
-rw-r--r-- 1 alice entwickler 1200 Apr 12 10:30 bericht.txt
| Ausgabebestandteil | Bedeutung | Beispielwert |
|---|---|---|
| Berechtigungszeichen | Rechte für Eigentümer, Gruppe und andere Benutzer | -rw-r--r-- |
| Benutzer-Eigentümer | Benutzeraccount, dem die Datei gehört | alice |
| Eigentümergruppe | Gruppe, die der Datei zugeordnet ist | entwickler |
| Dateiname | Name der Datei oder des Verzeichnisses | bericht.txt |
Den Benutzer-Eigentümer mit chown ändern
chown steht für change owner. Der Befehl ändert den Benutzer-Eigentümer und kann optional auch die Eigentümergruppe ändern.
Die Grundsyntax für eine einzelne Datei lautet:
chown NEUER_BENUTZER DATEINAME
Beispiel: Die Datei bobs_file.txt soll dem Benutzer jwilliams zugeordnet werden:
chown jwilliams bobs_file.txt
In diesem Beispiel wird nur der Benutzer-Eigentümer geändert. Die bisherige Eigentümergruppe bleibt unverändert.
Für eine Änderung sind der Zielbenutzer und die Datei beziehungsweise das Verzeichnis erforderlich. Der angegebene Benutzer muss auf dem System existieren.
Benutzer und Gruppe gleichzeitig ändern
Benutzer und Gruppe werden bei chown durch einen Doppelpunkt getrennt:
chown NEUER_BENUTZER:NEUE_GRUPPE DATEINAME
Beispiel:
chown jwilliams:entwickler bericht.txt
Damit werden sowohl der Benutzer-Eigentümer als auch die Eigentümergruppe von bericht.txt gesetzt. Sowohl der Benutzer jwilliams als auch die Gruppe entwickler müssen auf dem System vorhanden sein.
Die gleiche Syntax kann für ein Verzeichnis verwendet werden:
chown NEUER_BENUTZER:NEUE_GRUPPE VERZEICHNIS
Ohne die Option -R ändert dieser Befehl die Zuordnung des genannten Verzeichnisses, nicht automatisch die seiner Inhalte.
Nur die Eigentümergruppe ändern
Gruppenwechsel mit chown
Wenn der Benutzer-Eigentümer unverändert bleiben soll, lässt du den Teil vor dem Doppelpunkt leer:
chown :NEUE_GRUPPE DATEINAME
Beispiel:
chown :entwickler bericht.txt
Der Benutzer bleibt dabei unverändert; nur die Gruppe wird auf entwickler gesetzt.
Gruppenwechsel mit chgrp
chgrp ist der speziell für den Wechsel der Eigentümergruppe vorgesehene Befehl:
chgrp NEUE_GRUPPE DATEINAME
Beispiel:
chgrp entwickler bericht.txt
Für einen reinen Gruppenwechsel sind beide Varianten möglich. chgrp macht die Absicht unmittelbar sichtbar, während chown :GRUPPE DATEI die gemeinsame Syntax von chown nutzt.
| Ziel | Befehlssyntax | Was wird geändert | Rekursive Variante |
|---|---|---|---|
| Nur Benutzer-Eigentümer mit chown | chown BENUTZER DATEI | Nur der Benutzer | chown -R BENUTZER VERZEICHNIS |
| Benutzer und Gruppe mit chown | chown BENUTZER:GRUPPE DATEI | Benutzer und Gruppe | chown -R BENUTZER:GRUPPE VERZEICHNIS |
| Nur Gruppe mit chown | chown :GRUPPE DATEI | Nur die Gruppe | chown -R :GRUPPE VERZEICHNIS |
| Nur Gruppe mit chgrp | chgrp GRUPPE DATEI | Nur die Gruppe | chgrp -R GRUPPE VERZEICHNIS |
Rekursive Änderungen mit -R
Rekursiv bedeutet, dass eine Operation auf ein Verzeichnis und seine gesamte Unterstruktur angewendet wird. Dazu gehören enthaltene Dateien und Unterverzeichnisse.
Den Benutzer-Eigentümer eines Verzeichnisbaums änderst du beispielsweise so:
chown -R NEUER_BENUTZER ZIELVERZEICHNIS
Benutzer und Gruppe lassen sich gemeinsam rekursiv setzen:
chown -R NEUER_BENUTZER:NEUE_GRUPPE ZIELVERZEICHNIS
Für eine rekursive Gruppenänderung kannst du chgrp verwenden:
chgrp -R NEUE_GRUPPE ZIELVERZEICHNIS
Administrative Rechte und sudo
Ein Eigentümerwechsel erfordert in der Regel administrative Rechte. Wenn der angemeldete Benutzer nicht berechtigt ist, kannst du den Befehl – sofern dein Konto dafür freigeschaltet ist – mit sudo ausführen:
sudo chown NEUER_BENUTZER DATEINAME
Auch Gruppenänderungen oder rekursive Änderungen können administrative Rechte benötigen:
sudo chgrp -R NEUE_GRUPPE ZIELVERZEICHNIS
sudo führt einen einzelnen Befehl mit administrativen Berechtigungen aus. Nutze es nur, wenn die Änderung notwendig ist, und kontrolliere den Zielpfad vor der Ausführung.
Sicherer Arbeitsablauf
- Prüfe mit
ls -lden aktuellen Benutzer-Eigentümer und die Gruppe. - Überlege, ob nur der Benutzer, nur die Gruppe oder beides geändert werden soll.
- Verwende zunächst einen konkreten Dateipfad und erst dann eine rekursive Option, wenn die Wirkung klar ist.
- Führe den passenden Befehl aus, bei Bedarf mit
sudo. - Prüfe die neue Zuordnung erneut mit
ls -l.
Beispiel für die Kontrolle vor und nach einer Änderung:
ls -l bericht.txt
sudo chown jwilliams:entwickler bericht.txt
ls -l bericht.txt
Fehlerbehebung
„Operation not permitted“ oder fehlende Berechtigung
Der ausführende Benutzer darf den Eigentümer oder die Gruppe vermutlich nicht ändern. Prüfe zunächst die aktuelle Zuordnung und die eigenen Rechte. Falls zulässig, führe den Befehl mit sudo aus oder bitte einen Administrator um die Änderung.
Ungültiger Benutzer oder ungültige Gruppe
Diese Meldung weist meist darauf hin, dass der angegebene Benutzer oder die Gruppe nicht existiert oder falsch geschrieben wurde. Prüfe Namen und Schreibweise. Beide Konten müssen auf dem System eingerichtet sein.
Unbeabsichtigte Änderung des Benutzers
Wenn nur die Gruppe geändert werden sollte, darf vor dem Doppelpunkt kein Benutzername stehen. Verwende beispielsweise:
chown :NEUE_GRUPPE DATEINAME
chgrp NEUE_GRUPPE DATEINAME
Rekursiver Befehl änderte zu viele Dateien
Wahrscheinlich wurde -R auf einen zu allgemeinen oder falschen Pfad angewendet. Kontrolliere Zielpfade sorgfältig, teste zunächst in einem kleinen Verzeichnis und prüfe anschließend die betroffenen Dateien mit ls -l.
Eigentümer geändert, Zugriff bleibt verweigert
Der Eigentümerwechsel allein garantiert keinen Zugriff. Prüfe zusätzlich die Lese-, Schreib- und Ausführungsrechte für Eigentümer, Gruppe und andere Benutzer. Die Berechtigungen müssen gegebenenfalls separat angepasst werden.
Prüfungsrelevante Merksätze
chownbedeutet „change owner“ und kann Benutzer sowie optional Gruppe ändern.chown BENUTZER DATEIändert nur den Benutzer-Eigentümer.chown BENUTZER:GRUPPE DATEIändert Benutzer und Gruppe.chown :GRUPPE DATEIlässt den Benutzer unverändert und ändert nur die Gruppe.chgrp GRUPPE DATEIist die ausdrücklich dafür vorgesehene Variante für einen Gruppenwechsel.-Rwirkt auf das angegebene Verzeichnis und seine gesamte Unterstruktur.- Mit
ls -lkontrollierst du die Zuordnung vor und nach der Änderung. - Administrative Rechte sind häufig erforderlich;
sudodarf nur gezielt eingesetzt werden.
Weitere Grundlagen zur Anzeige und Änderung von Dateieigenschaften findest du unter Dateieigentümer und Gruppen in Linux ändern.