So verwenden Sie den chown-Befehl unter Linux


Grundlagen des Dateimanagements in Linux: Der Befehl chown

In Linux-Systemen sind Dateien und Ordner stets einem bestimmten Benutzer und einer zugehörigen Gruppe zugeordnet. Mit dem Befehl chown können Sie diese Besitzverhältnisse ändern. Wir erklären Ihnen, wie das funktioniert.

Die Bedeutung von Benutzer- und Gruppenbesitz

Linux ist ein Mehrbenutzersystem, das die Anlage verschiedener Benutzerkonten und die gleichzeitige Nutzung eines Rechners durch mehrere Personen ermöglicht. Um die Zugehörigkeit von Dateien zu bestimmen und ein gewisses Maß an Sicherheit zu gewährleisten, verwendet Linux ein ausgeklügeltes System von Eigentumsrechten. Jede Datei ist einem Eigentümer (einem Benutzer) und einer Gruppe zugeordnet.

Wird eine Datei neu erstellt, so wird der erstellende Benutzer automatisch zum Eigentümer. Die zugehörige Gruppe ist standardmäßig die aktuelle Gruppe des Benutzers. Sowohl Benutzer als auch Gruppen werden durch Namen und numerische Identifikatoren (User ID – UID und Group ID – GID) repräsentiert.

Beim Erstellen einer Datei sind Sie deren Eigentümer, und sie gehört Ihrer Standardgruppe. Normalerweise ist dies die Gruppe, in der Sie angemeldet sind, die oft denselben Namen wie Ihr Benutzername hat.

Der Befehl chown bietet Ihnen die Möglichkeit, diese Besitzverhältnisse zu ändern. Es ist möglich, gleichzeitig einen neuen Eigentümer, eine neue Gruppe oder beides festzulegen. Der Dateieigentümer kann die Gruppenzuordnung verändern, während die Änderung des Benutzerbesitzes nur mit Root-Rechten möglich ist. Dies dient dem Schutz vor unbefugten Dateiübernahmen durch andere Benutzer.

Anwendungsfälle für die Eigentumsänderung

Hier sind einige typische Szenarien, in denen eine Änderung des Dateibesitzes erforderlich sein kann:

  • Beim Übertragen von Dateien zwischen verschiedenen Linux- oder Unix-ähnlichen Systemen müssen die Benutzer- und Gruppenzuordnungen angepasst werden, damit die Dateien auf dem neuen System ordnungsgemäß funktionieren.
  • Wenn ein Mitarbeiter das Unternehmen verlässt, muss der Besitz seiner Dateien auf einen anderen Mitarbeiter übertragen werden.
  • Skripte können so konfiguriert werden, dass sie unter einem bestimmten Benutzer laufen.
  • Dateien oder Ordner, die als Root erstellt wurden, sollen für einen spezifischen Benutzer zugänglich gemacht werden.

Anzeigen Ihrer Gruppen, UID und GID

Verwenden Sie den Befehl groups, um Ihre aktuellen Gruppen anzuzeigen:

groups

Um eine detaillierte Auflistung Ihrer Gruppen, deren numerische IDs, sowie Ihre UID und GID zu erhalten, verwenden Sie den Befehl id:

id

Mit den folgenden Optionen können Sie die Ausgabe von id verfeinern:

  • -u: Zeigt Ihre UID an.
  • -g: Zeigt Ihre effektive (aktuelle) GID an.
  • -nu: Zeigt Ihren Benutzernamen an.
  • -ng: Zeigt Ihren aktuellen Gruppennamen an.
id -u
id -g
id -nu
id -ng

Anzeigen des Benutzer- und Gruppenbesitzes einer Datei

Um die Eigentumsverhältnisse einer Datei oder eines Ordners anzuzeigen, nutzen Sie die Option -l (lange Auflistung) des Befehls ls:

ls -l

In dieser Ausgabe sehen wir den Namen „dave“ zweimal. Die linke Instanz gibt den Dateieigentümer an (Benutzer „dave“), die rechte die zugehörige Gruppe („dave“).

Standardmäßig wird jeder neu erstellte Benutzer einer gleichnamigen privaten Gruppe zugewiesen, deren einziges Mitglied er ist.

Im folgenden Beispiel ist die Datei im Besitz des Benutzers „mary“, und die Gruppe, zu der die Datei gehört, ist „marys“ private Gruppe:

ls -l

Diese Datei gehört dem Benutzer „oscar“, ist aber der Gruppe „researchlab“ zugeordnet, was den Mitgliedern dieser Gruppe Zugriff ermöglicht, basierend auf den gesetzten Dateiberechtigungen.

Ändern des Benutzerbesitzes

Hier einige Beispiele zur Nutzung von chown:

Dieser Befehl ändert den Besitzer der Datei „while.c“ zu „mary“:

sudo chown mary while.c

Überprüfen Sie die Änderungen mit ls:

ls -l while.c

Mehrere Dateien können gleichzeitig geändert werden:

sudo chown mary getval.c global.c goto.c

Dadurch wird der Benutzerbesitz für alle drei Dateien geändert:

ls -l getval.c global.c goto.c

Platzhalter können genutzt werden, um Dateigruppen zu adressieren. Dieser Befehl ändert den Besitzer aller Dateien, deren Name mit „c“ beginnt:

sudo chown mary c*.*

Alle Dateien gehören nun „mary“, während der Gruppenbesitz unverändert bleibt:

ls -l mary c*.*

Um den Besitz eines Verzeichnisses zu ändern, übergeben wir den Verzeichnisnamen an chown:

sudo chown mary ./archive/

Mit ls -d werden die Eigenschaften des Verzeichnisses selbst angezeigt, nicht dessen Inhalt:

ls -l -d ./archive/

Die Option -R (rekursiv) ändert den Benutzerbesitz aller Dateien im angegebenen Ordner:

sudo chown -R mary ./archive/

Überprüfen Sie den Inhalt des Archivordners:

ls -l ./archive/

Nun sind alle Dateien im Archiv „mary“ zugewiesen.

Ändern des Gruppenbesitzes

Es gibt verschiedene Möglichkeiten, die Gruppenzuordnung zu ändern:

Um sowohl Benutzer- als auch Gruppenbesitz zu ändern, trennen Sie die beiden Namen mit einem Doppelpunkt. Die Gruppe muss existieren:

sudo chown mary:researchlab charm.c

Der Benutzer- und Gruppenbesitz wurde geändert:

ls -l charm.c

Eine verkürzte Form, um den Gruppenbesitz auf die aktuelle Gruppe des neuen Besitzers zu setzen, ist das Weglassen des Gruppennamens nach dem Doppelpunkt:

sudo chown mary: caps.c

ls -l caps.c

Hier wurde der Benutzer- und Gruppenbesitz zu „mary“ geändert.

Um nur den Gruppenbesitz zu ändern, lassen Sie den Benutzernamen weg und setzen Sie nur den Doppelpunkt und Gruppennamen:

sudo chown :researchlab at.c

ls -l at.c

Der Gruppenbesitz wurde geändert, aber der Benutzerbesitz ist erhalten geblieben.

chown mit UID- und GID-Werten

Sie können auch numerische UID- und GID-Werte nutzen. Der folgende Befehl setzt den Benutzer und die Gruppe auf „mary“:

sudo chown 1001:1001 at.c

ls -l at.c

Besitz als Schlüsselelement der Dateisicherheit

Der Besitz ist ein essenzieller Teil der Dateisicherheit in Linux, und die Dateiberechtigungen bilden den anderen Teil. Mit chown und chmod können Sie den Dateizugriff auf Ihrem System wirksam absichern.