So überprüfen Sie, ob eine Datei bestimmte Berechtigungen in Linux hat

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie Dateiberechtigungen in Linux prüfen können. Das Verständnis von Dateiberechtigungen ist grundlegend für die Verwaltung des Dateizugriffs und die Sicherheit. Sie werden verschiedene Methoden zur Prüfung von Berechtigungen erkunden, beginnend mit dem grundlegenden Befehl ls -l, um die Standard-Berechtigungen für Lesen, Schreiben und Ausführen für den Eigentümer, die Gruppe und andere anzuzeigen.

Basierend auf diesen Grundlagen werden Sie dann in die Verwendung des Befehls stat --format eintauchen, um eine detailliertere und anpassbare Ansicht der Dateiinformationen zu erhalten, einschließlich der Berechtigungen in verschiedenen Formaten. Abschließend lernen Sie, wie Sie Zugriffssteuerungslisten (Access Control Lists, ACLs) mit dem Befehl getfacl überprüfen können. Dieser Befehl bietet eine feinere Möglichkeit, Dateiberechtigungen über die Standard-Einstellungen für Eigentümer, Gruppe und andere hinaus zu verwalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") subgraph Lab Skills linux/ls -.-> lab-558710{{"So überprüfen Sie, ob eine Datei bestimmte Berechtigungen in Linux hat"}} linux/touch -.-> lab-558710{{"So überprüfen Sie, ob eine Datei bestimmte Berechtigungen in Linux hat"}} linux/chmod -.-> lab-558710{{"So überprüfen Sie, ob eine Datei bestimmte Berechtigungen in Linux hat"}} linux/pwd -.-> lab-558710{{"So überprüfen Sie, ob eine Datei bestimmte Berechtigungen in Linux hat"}} end

Dateiberechtigungen mit ls -l prüfen

In diesem Schritt lernen Sie, wie Sie Dateiberechtigungen in Linux mit dem Befehl ls -l prüfen können. Das Verständnis von Dateiberechtigungen ist entscheidend für die sichere Verwaltung von Dateien und Verzeichnissen.

Dateiberechtigungen bestimmen, wer eine Datei oder ein Verzeichnis lesen, schreiben oder ausführen kann. In Linux werden Berechtigungen drei Kategorien zugewiesen:

  • Eigentümer: Der Benutzer, der die Datei oder das Verzeichnis besitzt.
  • Gruppe: Eine Gruppe von Benutzern, die bestimmte Berechtigungen haben.
  • Andere: Alle anderen Benutzer auf dem System.

Erstellen wir eine einfache Datei, um ihre Berechtigungen zu untersuchen. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden. Sie können Ihr aktuelles Verzeichnis mit dem Befehl pwd bestätigen:

pwd

Sie sollten die folgende Ausgabe sehen:

/home/labex/project

Erstellen Sie jetzt eine Datei namens my_file.txt mit dem Befehl touch:

touch my_file.txt

Der Befehl touch erstellt eine leere Datei, wenn sie nicht existiert.

Verwenden Sie als Nächstes den Befehl ls -l, um die Details der Datei, einschließlich ihrer Berechtigungen, anzuzeigen:

ls -l my_file.txt

Sie werden eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r-- 1 labex labex 0 Feb 13 10:00 my_file.txt

Zerlegen wir den ersten Teil der Ausgabe: -rw-rw-r--. Diese Zeichenfolge repräsentiert den Dateityp und die Berechtigungen.

  • Das erste Zeichen (-) gibt den Dateityp an. - bedeutet, dass es sich um eine normale Datei handelt. Andere häufige Typen sind d für ein Verzeichnis und l für einen symbolischen Link.
  • Die nächsten neun Zeichen sind in drei Gruppen zu je drei Zeichen aufgeteilt:
    • Die erste Gruppe (rw-) zeigt die Berechtigungen des Eigentümers an.
    • Die zweite Gruppe (rw-) zeigt die Berechtigungen der Gruppe an.
    • Die dritte Gruppe (r--) zeigt die Berechtigungen der anderen an.

Innerhalb jeder Gruppe von drei Zeichen:

  • r bedeutet Lese-Berechtigung.
  • w bedeutet Schreib-Berechtigung.
  • x bedeutet Ausführ-Berechtigung.
  • - bedeutet, dass die Berechtigung nicht gewährt ist.

In der Beispielausgabe -rw-rw-r--:

  • Der Eigentümer (labex) hat Lese- (r) und Schreib-Berechtigung (w), aber keine Ausführ-Berechtigung (-).
  • Die Gruppe (labex) hat Lese- (r) und Schreib-Berechtigung (w), aber keine Ausführ-Berechtigung (-).
  • Andere haben nur Lese-Berechtigung (r), aber keine Schreib- (-) oder Ausführ-Berechtigung (-).

Die Zahlen und Namen, die den Berechtigungen folgen (1 labex labex 0 Feb 13 10:00), repräsentieren:

  • 1: Die Anzahl der harten Links zur Datei.
  • labex: Der Eigentümer der Datei.
  • labex: Die Gruppe, die die Datei besitzt.
  • 0: Die Größe der Datei in Bytes.
  • Feb 13 10:00: Das Datum und die Uhrzeit der letzten Änderung.
  • my_file.txt: Der Dateiname.

Das Verständnis der Ausgabe von ls -l ist grundlegend für die Arbeit mit Dateien und Verzeichnissen in Linux.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Berechtigungen mit stat --format prüfen

Im vorherigen Schritt haben Sie ls -l verwendet, um Dateiberechtigungen anzuzeigen. Ein weiterer leistungsstarker Befehl zur Ermittlung detaillierter Informationen über Dateien und Dateisysteme ist stat. In diesem Schritt verwenden Sie stat mit der Option --format, um Dateiberechtigungen auf eine strukturierte Weise zu prüfen.

Der Befehl stat kann verschiedene Informationen über eine Datei anzeigen, wie z. B. Größe, Blöcke, Zugriffszeit, Änderungszeit und Berechtigungen. Die Option --format ermöglicht es Ihnen, genau anzugeben, welche Informationen Sie mithilfe von Formatsequenzen sehen möchten.

Verwenden Sie stat, um die Berechtigungen der Datei my_file.txt zu prüfen, die Sie im vorherigen Schritt erstellt haben. Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project befinden.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

stat --format=%A my_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r--

Diese Ausgabe ist dieselbe Berechtigungszeichenfolge, die Sie mit ls -l gesehen haben. Die Formatsequenz %A teilt stat mit, die Berechtigungen der Datei in einem menschenlesbaren Format anzuzeigen, genau wie ls -l.

Probieren wir eine andere Formatsequenz aus. Die Sequenz %a zeigt die Berechtigungen in Oktalnotation an. Oktalnotation ist eine numerische Darstellung von Berechtigungen, bei der jede Ziffer die Berechtigungen für den Eigentümer, die Gruppe und andere darstellt.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

stat --format=%a my_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

0664

Zerlegen wir die Oktalberechtigung 0664:

  • Die erste Ziffer (0) wird normalerweise bei grundlegenden Berechtigungen ignoriert.
  • Die zweite Ziffer (6) repräsentiert die Berechtigungen des Eigentümers. Im Binärsystem ist 6 gleich 110. Dies entspricht Lese- (1), Schreib- (1) und Ausführ-Berechtigung (0). Also Lese- und Schreib-Berechtigungen.
  • Die dritte Ziffer (6) repräsentiert die Berechtigungen der Gruppe. Wiederum ist 110 im Binärsystem, was Lese- und Schreib-Berechtigungen bedeutet.
  • Die vierte Ziffer (4) repräsentiert die Berechtigungen der anderen. Im Binärsystem ist 4 gleich 100. Dies entspricht Lese- (1), Schreib- (0) und Ausführ-Berechtigung (0). Also nur Lese-Berechtigung.

Dies stimmt mit der Ausgabe -rw-rw-r-- von ls -l überein. Oktalnotation wird oft verwendet, wenn Sie Berechtigungen mit dem Befehl chmod ändern, über den Sie möglicherweise in einem zukünftigen Lab lernen werden.

Die Verwendung von stat --format ermöglicht es Ihnen, bestimmte Informationen über eine Datei zu extrahieren, was in Skripten oder für detaillierte Analysen sehr nützlich sein kann.

Klicken Sie auf Weiter, um fortzufahren.

Zugriffssteuerungslisten mit getfacl überprüfen

Neben den Standard-Linux-Berechtigungen (Eigentümer, Gruppe, andere) unterstützen einige Dateisysteme Zugriffssteuerungslisten (Access Control Lists, ACLs). ACLs bieten eine feinere Möglichkeit, Berechtigungen für bestimmte Benutzer oder Gruppen über die drei grundlegenden Kategorien hinaus zu definieren.

Der Befehl getfacl wird verwendet, um die ACLs von Dateien und Verzeichnissen anzuzeigen. In diesem Schritt verwenden Sie getfacl, um zu prüfen, ob für die Datei my_file.txt ACLs festgelegt sind.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project befinden:

pwd

Sie sollten /home/labex/project sehen.

Führen Sie nun den Befehl getfacl für my_file.txt aus:

getfacl my_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

## file: my_file.txt
## owner: labex
## group: labex
user::rw-
group::rw-
other::r--

Zerlegen wir die Ausgabe:

  • ## file: my_file.txt: Gibt die untersuchte Datei an.
  • ## owner: labex: Zeigt den Dateieigentümer an.
  • ## group: labex: Zeigt die primäre Gruppe der Datei an.
  • user::rw-: Diese Zeile zeigt die Berechtigungen für den Dateieigentümer an. user:: bezieht sich auf den Eigentümerbenutzer, und rw- zeigt Lese- und Schreib-Berechtigungen an. Dies entspricht den Eigentümerberechtigungen, die mit ls -l angezeigt werden.
  • group::rw-: Diese Zeile zeigt die Berechtigungen für die Eigentümergruppe an. group:: bezieht sich auf die Eigentümergruppe, und rw- zeigt Lese- und Schreib-Berechtigungen an. Dies entspricht den Gruppenberechtigungen, die mit ls -l angezeigt werden.
  • other::r--: Diese Zeile zeigt die Berechtigungen für andere an. other:: bezieht sich auf alle anderen Benutzer, und r-- zeigt Lese-Berechtigung an. Dies entspricht den Berechtigungen für andere, die mit ls -l angezeigt werden.

In diesem Fall spiegelt die Ausgabe von getfacl einfach die Standard-Linux-Berechtigungen wider. Wenn für andere Benutzer oder Gruppen spezifische ACLs festgelegt wären, würden sie als zusätzliche Zeilen in der Ausgabe erscheinen, wie z. B. user:username:permissions oder group:groupname:permissions.

Beispielsweise würde, wenn eine ACL festgelegt wäre, um einem Benutzer namens testuser schreibgeschützten Zugriff zu gewähren, die Ausgabe möglicherweise eine Zeile wie user:testuser:r-- enthalten.

Da für my_file.txt keine spezifischen ACLs festgelegt wurden, zeigt getfacl die Standardberechtigungen an, die aus den Standard-Berechtigungsebenen abgeleitet sind.

Die Verwendung von getfacl ist unerlässlich, wenn Sie die vollständige Menge der auf eine Datei oder ein Verzeichnis angewandten Berechtigungen verstehen müssen, insbesondere in Umgebungen, in denen ACLs verwendet werden.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie Dateiberechtigungen in Linux mit dem Befehl ls -l prüfen können. Sie haben eine Beispiel-Datei erstellt und die Ausgabe von ls -l interpretiert, wobei Sie den Dateityp sowie die Lese-, Schreib- und Ausführ-Berechtigungen für den Eigentümer, die Gruppe und andere verstanden haben.

Sie haben auch alternative Methoden zur Prüfung von Dateiberechtigungen untersucht. Sie haben den Befehl stat --format verwendet, um spezifische Berechtigungsdetails in einem strukturierteren Format abzurufen, und den Befehl getfacl, um nach Zugriffssteuerungslisten (Access Control Lists, ACLs) zu suchen, die eine feinere Steuerung der Berechtigungen bieten als die Standard-Einstellungen für Eigentümer, Gruppe und andere.