Wie man prüft, ob eine Datei in Linux lesbar ist

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 in Linux mithilfe verschiedener Befehlszeilentools prüfen können, ob eine Datei lesbar ist. Sie beginnen damit, den grundlegenden Befehl test -r zu verwenden, um programmgesteuert die Leseberechtigung zu prüfen und zu verstehen, wie er in bedingten Ausdrücken eingesetzt wird.

Als Nächstes werden Sie den Befehl ls -l untersuchen, um die Dateiberechtigungen visuell zu überprüfen und Einblicke in die Berechtigungszeichenfolge und deren Bedeutung zu erhalten. Schließlich werden Sie den Befehl stat nutzen, um detaillierte Informationen über eine Datei zu erhalten, einschließlich ihrer Zugriffsberechtigungen und anderer Metadaten. Durch die Durchführung dieser Schritte werden Sie praktische Fähigkeiten in der Bestimmung der Lesbarkeit von Dateien in einer Linux-Umgebung erwerben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/InputandOutputRedirectionGroup -.-> linux/redirect("I/O Redirecting") subgraph Lab Skills linux/echo -.-> lab-558713{{"Wie man prüft, ob eine Datei in Linux lesbar ist"}} linux/test -.-> lab-558713{{"Wie man prüft, ob eine Datei in Linux lesbar ist"}} linux/ls -.-> lab-558713{{"Wie man prüft, ob eine Datei in Linux lesbar ist"}} linux/pwd -.-> lab-558713{{"Wie man prüft, ob eine Datei in Linux lesbar ist"}} linux/redirect -.-> lab-558713{{"Wie man prüft, ob eine Datei in Linux lesbar ist"}} end

Prüfen der Lesbarkeit mit test -r

In diesem Schritt lernen Sie, wie Sie mithilfe des test-Befehls mit der Option -r prüfen können, ob Sie Leseberechtigung für eine Datei haben.

Der test-Befehl ist ein integrierter Shell-Befehl, der bedingte Ausdrücke auswertet. Er wird oft in Shell-Skripten verwendet, um Entscheidungen zu treffen. Die Option -r prüft speziell, ob eine Datei existiert und vom aktuellen Benutzer lesbar ist.

Erstellen wir zunächst eine einfache Datei, um dies zu testen. Wir verwenden den echo-Befehl, um etwas Text in eine Datei namens my_file.txt in Ihrem ~/project-Verzeichnis zu schreiben.

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

echo "This is a test file." > ~/project/my_file.txt

Dieser Befehl erstellt die Datei ~/project/my_file.txt und schreibt die Zeichenkette "This is a test file." hinein. Das >-Symbol leitet die Ausgabe des echo-Befehls in die angegebene Datei um.

Nun verwenden wir test -r, um zu prüfen, ob Sie diese Datei lesen können. Der test-Befehl selbst gibt keine Ausgabe zurück, wenn die Bedingung wahr ist. Wir kombinieren ihn normalerweise mit anderen Befehlen wie echo, um das Ergebnis zu sehen.

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

test -r ~/project/my_file.txt && echo "File is readable."

Der &&-Operator bedeutet "führe den Befehl auf der rechten Seite nur aus, wenn der Befehl auf der linken Seite erfolgreich ist (einen Exit-Status von Null zurückgibt)". Wenn test -r ~/project/my_file.txt wahr ist (d.h. die Datei ist lesbar), wird der echo-Befehl ausgeführt.

Sie sollten die folgende Ausgabe sehen:

File is readable.

Nun versuchen wir, eine Datei zu prüfen, die nicht existiert.

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

test -r ~/project/non_existent_file.txt && echo "This won't be printed."

Da ~/project/non_existent_file.txt nicht existiert, gibt test -r einen Exit-Status ungleich Null zurück (Fehler), und der echo-Befehl wird nicht ausgeführt. Sie sollten keine Ausgabe von diesem Befehl sehen.

Der test-Befehl ist ein grundlegendes Werkzeug für das Skripten in Linux. Das Verständnis, wie man seine verschiedenen Optionen wie -r verwendet, ist entscheidend für das Schreiben robuster Skripte, die Dateiberechtigungen und die Existenz von Dateien prüfen können, bevor sie Operationen ausführen.

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

Prüfen der Berechtigungen mit ls -l

Im vorherigen Schritt haben Sie test -r verwendet, um zu prüfen, ob eine Datei lesbar ist. Jetzt verwenden wir den ls-Befehl mit der Option -l, um die detaillierten Berechtigungen einer Datei anzuzeigen.

Der ls-Befehl listet den Inhalt eines Verzeichnisses auf. Die Option -l liefert ein "langes Listing", das Informationen über den Dateityp, die Berechtigungen, die Anzahl der harten Links, den Eigentümer, die Gruppe, die Größe, die Änderungszeit und den Dateinamen enthält.

Schauen wir uns die Berechtigungen für die Datei my_file.txt an, die Sie im vorherigen Schritt erstellt haben. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden. Sie können Ihr aktuelles Verzeichnis mit dem pwd-Befehl bestätigen:

pwd

Sie sollten /home/labex/project sehen.

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

ls -l my_file.txt

Sie werden eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r-- 1 labex labex XX Month XX XX:XX my_file.txt

Lassen Sie uns den ersten Teil der Ausgabe, der den Dateityp und die Berechtigungen darstellt, analysieren:

-rw-rw-r--

Diese Zeichenkette aus zehn Zeichen gibt Ihnen viele Informationen über die Dateiberechtigungen.

  1. Das erste Zeichen gibt den Dateityp an:

    • - bedeutet, dass es sich um eine normale Datei handelt.
    • d bedeutet, dass es sich um ein Verzeichnis handelt.
    • l bedeutet, dass es sich um einen symbolischen Link handelt.
    • (Es gibt noch andere Typen, aber diese sind die häufigsten).
  2. Die nächsten neun Zeichen sind in drei Gruppen zu je drei Zeichen unterteilt:

    • Die erste Gruppe (rw-) zeigt die Berechtigungen für den Eigentümer der Datei an.
    • Die zweite Gruppe (rw-) zeigt die Berechtigungen für die Gruppe, der die Datei gehört, an.
    • Die dritte Gruppe (r--) zeigt die Berechtigungen für andere (alle anderen Benutzer) an.

Innerhalb jeder Gruppe von drei Zeichen:

  • Das erste Zeichen gibt die Leseberechtigung (r) an. Wenn ein Bindestrich (-) vorhanden ist, ist die Leseberechtigung verweigert.
  • Das zweite Zeichen gibt die Schreibberechtigung (w) an. Wenn ein Bindestrich (-) vorhanden ist, ist die Schreibberechtigung verweigert.
  • Das dritte Zeichen gibt die Ausführungsberechtigung (x) an. Wenn ein Bindestrich (-) vorhanden ist, ist die Ausführungsberechtigung verweigert.

Für my_file.txt mit den Berechtigungen -rw-rw-r-- gilt also:

  • Der Eigentümer (labex) hat Leseberechtigung (r) und Schreibberechtigung (w), aber keine Ausführungsberechtigung (-).
  • Die Gruppe (labex) hat Leseberechtigung (r) und Schreibberechtigung (w), aber keine Ausführungsberechtigung (-).
  • Andere haben Leseberechtigung (r), aber keine Schreibberechtigung (-) und keine Ausführungsberechtigung (-).

Diese Ausgabe bestätigt, dass der Eigentümer (labex) Leseberechtigung hat, weshalb test -r im vorherigen Schritt funktioniert hat.

Das Verständnis der Ausgabe von ls -l ist grundlegend für die Verwaltung von Dateien und Verzeichnissen in Linux und die Kontrolle darüber, wer auf sie zugreifen kann.

Klicken Sie auf Weiter, um fortzufahren.

Untersuchung des Dateizugriffs mit stat

In diesem Schritt verwenden Sie den stat-Befehl, um detaillierte Informationen über eine Datei zu erhalten, einschließlich ihrer Zugriffs-, Änderungs- und Statusänderungszeiten sowie ihrer Berechtigungen in symbolischer und numerischer Form.

Während ls -l Ihnen einen guten Überblick über die Berechtigungen gibt, bietet stat einen tieferen Einblick in die Metadaten der Datei.

Lassen Sie uns stat auf die Datei my_file.txt anwenden, die Sie zuvor im Verzeichnis ~/project erstellt haben.

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

stat ~/project/my_file.txt

Sie werden eine Ausgabe ähnlich der folgenden sehen:

  File: /home/labex/project/my_file.txt
  Size: XX          Blocks: X          IO Block: XXXX   regular file
Device: XXh/XXd Inode: XXXXXXXX    Links: X
Access: (0664/-rw-rw-r--)  Uid: (  XXXX/   labex)   Gid: (  XXXX/   labex)
Access: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Modify: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
Change: XXXX-XX-XX XX:XX:XX.XXXXXXXXXX +XXXX
 Birth: -

Schauen wir uns einige Schlüsselzeilen in der Ausgabe an:

  • File: Der Name der Datei.
  • Size: Die Größe der Datei in Bytes.
  • Access: (0664/-rw-rw-r--): Diese Zeile zeigt die Berechtigungen in zwei Formaten an:
    • 0664: Dies ist die numerische (oktale) Darstellung der Berechtigungen. Jede Ziffer repräsentiert die Berechtigungen für Eigentümer, Gruppe und andere jeweils.
      • 6 für den Eigentümer: rwx (Lesen=4, Schreiben=2, Ausführen=0) -> 4+2+0 = 6
      • 6 für die Gruppe: rwx (Lesen=4, Schreiben=2, Ausführen=0) -> 4+2+0 = 6
      • 4 für andere: rwx (Lesen=4, Schreiben=0, Ausführen=0) -> 4+0+0 = 4
      • Die führende 0 wird oft verwendet, um oktale Notation anzuzeigen.
    • -rw-rw-r--: Dies ist die symbolische Darstellung der Berechtigungen, die Sie mit ls -l gelernt haben.
  • Uid und Gid: Die Benutzer-ID und Gruppen-ID des Dateieigentümers und der Gruppe, zusammen mit ihren Namen.
  • Access, Modify, Change: Diese Zeilen zeigen die Zeitstempel für die Datei an:
    • Access: Der Zeitpunkt des letzten Zugriffs (Lesen) auf die Datei.
    • Modify: Der Zeitpunkt der letzten Änderung des Dateiinhalts.
    • Change: Der Zeitpunkt der letzten Änderung der Dateimetadaten (z. B. Berechtigungen, Eigentümer, Gruppe).

Der stat-Befehl ist sehr nützlich, wenn Sie detaillierte Informationen über die Eigenschaften einer Datei benötigen, insbesondere für Skripte oder zur Behebung von Berechtigungsproblemen.

Sie haben nun drei verschiedene Methoden gelernt, um Dateiberechtigungen und Zugriffsinformationen in Linux zu untersuchen: test -r, ls -l und stat. Dies sind essentielle Werkzeuge für die Arbeit mit Dateien in der Kommandozeile.

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

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie in Linux prüfen können, ob eine Datei lesbar ist, indem Sie den test-Befehl mit der Option -r verwenden. Sie haben das Erstellen einer Datei geübt und dann test -r in Verbindung mit dem &&-Operator eingesetzt, um bedingt eine Nachricht auszugeben, abhängig von der Lesbarkeit der Datei. Sie haben auch beobachtet, dass test -r für nicht existierende Dateien false zurückgibt, wodurch nachfolgende Befehle nicht ausgeführt werden. Dieser Schritt hat eine grundlegende Methode zur programmatischen Prüfung von Dateiberechtigungen in der Shell-Skripting gezeigt.