Implementierung von Dateiberechtigungen

LinuxBeginner
Jetzt üben

Einführung

In jedem Multi-User-Betriebssystem wie Linux sind Dateiberechtigungen ein kritisches Sicherheitsmerkmal. Sie steuern, wer Dateien lesen, schreiben oder ausführen darf, und stellen sicher, dass Benutzer nur auf die Daten zugreifen können, für die sie autorisiert sind. Das Verständnis, wie diese Berechtigungen verwaltet werden, ist eine grundlegende Fähigkeit für jeden Linux-Benutzer, Entwickler oder Systemadministrator.

In diesem Lab sammeln Sie praktische Erfahrungen mit den wesentlichen Befehlen zur Verwaltung von Dateiberechtigungen. Sie lernen, wie Sie:

  • Eine neue Datei mit dem Befehl touch erstellen.
  • Dateiberechtigungen mithilfe der numerischen (oktalen) Notation des Befehls chmod ändern.
  • Den Besitzer und die Gruppe einer Datei mit dem Befehl chown ändern.
  • Änderungen mit dem Befehl ls -l überprüfen.
  • Standardberechtigungen für ein Verzeichnis festlegen.

Am Ende dieses Labs werden Sie mit den Grundprinzipien der Datei- und Verzeichnisberechtigungen unter Linux vertraut sein.

Testdatei mit dem Befehl touch /tmp/testfile erstellen

In diesem Schritt beginnen Sie mit der Erstellung einer leeren Datei, die wir für den Rest des Labs verwenden werden. Der Standardbefehl zum Erstellen einer leeren Datei unter Linux ist touch. Dieser Befehl erstellt die Datei, falls sie nicht existiert, oder aktualisiert ihren Änderungszeitstempel, falls sie bereits existiert.

Wir werden unsere Testdatei im Verzeichnis /tmp erstellen, welches ein Standardort für temporäre Dateien ist.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um eine Datei namens testfile zu erstellen:

touch /tmp/testfile

Der Befehl erzeugt bei Erfolg keine Ausgabe. Sie können optional überprüfen, ob die Datei erstellt wurde, indem Sie sie mit ls /tmp/testfile auflisten.

Berechtigungen mit dem Befehl chmod 644 /tmp/testfile setzen

In diesem Schritt lernen Sie, wie Sie die Berechtigungen der gerade erstellten Datei ändern. Der Befehl chmod (change mode) wird für diesen Zweck verwendet. Berechtigungen können entweder mit symbolischer oder numerischer (oktaler) Notation festgelegt werden. Hier verwenden wir die numerische Methode, die sehr verbreitet ist.

In der numerischen Notation werden die Berechtigungen durch eine dreistellige Zahl dargestellt, die jeweils dem Eigentümer (owner), der Gruppe (group) und anderen Benutzern (other users) entspricht. Jede Berechtigung hat einen Wert:

  • 4 für Lesen (read, r)
  • 2 für Schreiben (write, w)
  • 1 für Ausführen (execute, x)

Wir werden die Berechtigungen auf 644 setzen, was eine sehr übliche Einstellung für Dateien ist. Dies entspricht:

  • Eigentümer: 6 (4+2) -> Lesen und Schreiben (rw-)
  • Gruppe: 4 -> Nur Lesen (r--)
  • Andere: 4 -> Nur Lesen (r--)

Führen Sie nun den folgenden Befehl aus, um diese Berechtigungen auf Ihre Testdatei anzuwenden:

chmod 644 /tmp/testfile

Dieser Befehl erzeugt keine Ausgabe. In einem späteren Schritt werden wir überprüfen, ob die Berechtigungen korrekt angewendet wurden.

Eigentümer mit dem Befehl chown root:root /tmp/testfile ändern

In diesem Schritt ändern Sie den Eigentümer der Datei. Der Befehl chown (change owner) wird verwendet, um den Benutzer und/oder die Gruppe zu ändern, die eine Datei besitzt. Die Syntax lautet chown benutzer:gruppe dateiname.

Die Änderung des Eigentümers einer Datei auf einen anderen Benutzer (wie root) ist ein privilegierter Vorgang, der Administratorrechte erfordert. Sie müssen den Befehl sudo verwenden, um chown mit den erforderlichen Berechtigungen auszuführen. In dieser LabEx-Umgebung kann der Benutzer labex sudo ohne Passwort verwenden.

Ändern wir nun den Eigentümer und die Gruppe von /tmp/testfile auf root. Führen Sie den folgenden Befehl aus:

sudo chown root:root /tmp/testfile

Auch hier erzeugt ein erfolgreicher Befehl keine Ausgabe. Diese Aktion stellt sicher, dass die Datei nun dem administrativen Benutzer des Systems gehört.

Überprüfung mit dem Befehl ls -l /tmp/testfile

In diesem Schritt überprüfen Sie alle bisher vorgenommenen Änderungen. Der Befehl ls -l liefert eine "lange Auflistung" (long listing), die detaillierte Informationen über Dateien anzeigt, einschließlich Berechtigungen, Eigentümer, Gruppe, Größe und Änderungsdatum.

Führen Sie den folgenden Befehl aus, um /tmp/testfile zu inspizieren:

ls -l /tmp/testfile

Sie sollten eine Ausgabe sehen, die dieser ähnelt (Datum und Uhrzeit variieren):

-rw-r--r-- 1 root root 0 Oct 22 15:13 /tmp/testfile

Lassen Sie uns diese Ausgabe aufschlüsseln:

  • -rw-r--r--: Dies sind die Dateiberechtigungen. Das erste Zeichen - zeigt an, dass es sich um eine reguläre Datei handelt. rw- zeigt an, dass der Eigentümer (root) Lese- und Schreibberechtigungen hat. Das nächste r-- zeigt an, dass die Gruppe (root) nur Leseberechtigung hat. Das letzte r-- zeigt an, dass alle anderen Benutzer ebenfalls nur Leseberechtigung haben. Dies entspricht dem von Ihnen gesetzten 644.
  • root root: Dies zeigt den Dateieigentümer und die Gruppe an, die Sie auf root geändert haben.

Sie haben nun erfolgreich eine Datei erstellt, ihre Berechtigungen festgelegt und ihren Eigentümer geändert.

Verzeichnis mit dem Befehl chmod 755 /tmp/testdir sichern

In diesem letzten Schritt legen Sie die Berechtigungen für ein Verzeichnis fest. Verzeichnisberechtigungen ähneln Dateiberechtigungen, aber das execute-Bit (x) hat eine besondere Bedeutung: Es gewährt die Möglichkeit, das Verzeichnis zu betreten und auf Dateien darin zuzugreifen.

Eine übliche und sichere Berechtigungseinstellung für Verzeichnisse ist 755. Lassen Sie uns diese aufschlüsseln:

  • Eigentümer (Owner): 7 (4+2+1) -> lesen, schreiben und ausführen (rwx). Der Eigentümer kann Dateien auflisten, erstellen/löschen und das Verzeichnis betreten.
  • Gruppe (Group): 5 (4+1) -> lesen und ausführen (r-x). Gruppenmitglieder können Dateien auflisten und das Verzeichnis betreten, aber keine Dateien erstellen oder löschen.
  • Andere (Others): 5 (4+1) -> lesen und ausführen (r-x). Andere Benutzer können ebenfalls Dateien auflisten und das Verzeichnis betreten.

Zu Beginn dieses Labs wurde für Sie ein Verzeichnis namens /tmp/testdir erstellt. Wenden Sie nun mit dem Befehl chmod die Berechtigungen 755 darauf an.

chmod 755 /tmp/testdir

Sie können die Änderung mit ls -ld /tmp/testdir überprüfen. Das Flag -d ist wichtig, um die Details des Verzeichnisses selbst aufzulisten, nicht seinen Inhalt.

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben erfolgreich die grundlegenden Fähigkeiten zur Verwaltung von Datei- und Verzeichnisberechtigungen in einer Linux-Umgebung geübt.

In diesem Lab haben Sie gelernt, wie man:

  • Eine leere Datei mit touch erstellt.
  • chmod mit numerischen (oktalen) Codes wie 644 für Dateien und 755 für Verzeichnisse verwendet, um den Zugriff zu steuern.
  • sudo chown verwendet, um den Eigentümer und die Gruppe einer Datei zu ändern.
  • ls -l verwendet, um Datei- und Verzeichnisberechtigungen sowie die Eigentümerschaft zu überprüfen und zu verifizieren.

Diese Befehle sind wesentliche Werkzeuge, um Ihre Dateien zu sichern und ein gut organisiertes System zu pflegen. Ihre Beherrschung ist ein wichtiger Schritt, um versiert im Umgang mit Linux zu werden.