GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Execute- vs. Read-Bit. Wie funktionieren Verzeichnisberechtigungen in Linux?

Beim Anwenden von Berechtigungen auf Verzeichnisse unter Linux haben die Berechtigungsbits andere Bedeutungen als bei normalen Dateien.

  • Das Lesebit (r ) ermöglicht es dem betroffenen Benutzer, die Dateien innerhalb des Verzeichnisses aufzulisten
  • Das Schreibbit (w ) ermöglicht es dem betroffenen Benutzer, Dateien innerhalb des Verzeichnisses zu erstellen, umzubenennen oder zu löschen und die Attribute des Verzeichnisses zu ändern
  • Das Ausführungsbit (x ) ermöglicht es dem betroffenen Benutzer, das Verzeichnis zu betreten und auf Dateien und Verzeichnisse darin zuzugreifen
  • Das klebrige Bit (T , oder t wenn das Ausführungsbit für andere gesetzt ist) besagt, dass Dateien und Verzeichnisse innerhalb dieses Verzeichnisses nur von ihrem Besitzer (oder Root) gelöscht oder umbenannt werden dürfen

Denken Sie zuerst:Was ist ein Verzeichnis? Es ist nur eine Liste von Elementen (Dateien und anderen Verzeichnissen), die sich darin befinden. Also:Verzeichnis =Namensliste.

Bit lesen =Wenn gesetzt, können Sie diese Liste lesen. Wenn Sie beispielsweise ein Verzeichnis mit dem Namen poems haben :

  • Du kannst ls poems und Sie erhalten eine Liste der darin lebenden Gegenstände (-l keine Details preisgeben!).
  • Sie können die Befehlszeilenvervollständigung verwenden, z. B. touch poems/so <TAB> poems/somefile .
  • Du kannst poems nicht machen Ihr Arbeitsverzeichnis (also cd hinein).

Bit schreiben =Wenn gesetzt, können Sie diese Liste modifizieren, d.h. Sie können Namen darin {hinzufügen, umbenennen, löschen}. Aber! Das geht eigentlich nur, wenn auch das Execute-Bit gesetzt ist.

Bit ausführen =Machen Sie dieses Verzeichnis zu Ihrem Arbeitsverzeichnis, z. B. cd hinein. Sie benötigen diese Berechtigung, wenn Sie:

  • Zugreifen (Lesen, Schreiben, Ausführen) auf darin enthaltene Elemente.
  • Ändern Sie die Liste selbst, d.h. Namen hinzufügen, umbenennen, löschen (natürlich muss das Schreibbit auf das Verzeichnis gesetzt sein).

Interessanter Fall 1 :Wenn Sie Schreib- und Ausführungsberechtigungen für ein Verzeichnis haben, können Sie darin enthaltene Elemente {löschen, umbenennen}, selbst wenn Sie keine Schreibberechtigung für diese Elemente haben. (Verwenden Sie Sticky Bit, um dies zu verhindern)

Interessanter Fall 2 :Wenn Sie die Berechtigung zum Ausführen (aber nicht zum Schreiben) für ein Verzeichnis haben UND Sie die Berechtigung zum Schreiben für eine darin enthaltene Datei haben, können Sie die Datei nicht löschen (da sie aus der Liste entfernt werden muss). Sie können jedoch seinen Inhalt löschen, z. Wenn es sich um eine Textdatei handelt, können Sie sie mit vi öffnen und alles löschen. Die Datei wird immer noch da sein, aber sie wird leer sein.

Zusammenfassung:

Bit lesen =Sie können die Namen auf der Liste lesen.
Bit schreiben =Sie können Namen in der Liste {hinzufügen, umbenennen, löschen}, WENN auch das Ausführungsbit gesetzt ist.
Bit ausführen =Sie können dieses Verzeichnis zu Ihrem Arbeitsverzeichnis machen.

PS:Der von Kusalananda erwähnte Artikel ist gut zu lesen.


Ich habe diese Tabelle mit allen möglichen Berechtigungen und ihren praktischen Auswirkungen vorbereitet.

(*) Nur Dateinamen :Andere Attribute wie Größe oder Datum sind nicht verfügbar. Z.B. Sie können die Tabulatortaste zur automatischen Vervollständigung verwenden, aber nicht den Befehl ls.

Einige Gedanken :

  • Mit X nicht gesetzt , R und W sind meistens nutzlos.
  • X allein RW deaktivieren gibt Ihnen ein falsches Sicherheitsgefühl, da Sie Dateiinhalte blind lesen und schreiben und auf Unterverzeichnisse zugreifen könnten. Sie sollten sicher sein, dass alle direkten untergeordneten Elemente des Verzeichnisses explizite Berechtigungen haben.
  • Selten werden Sie andere Werte verwenden als:
    • 0 :Kein Zugriff.
    • 1 :Minimaler Zugang zum Durchqueren.
    • 5 :Lesen/Schreiben zulassen, aber die Struktur des Verzeichnisbaums selbst nicht verändern.
    • 7 :Vollzugriff.

Linux
  1. So aktualisieren Sie einen Linux-Symlink

  2. UNIX / Linux:Leitfaden für Anfänger zu Datei- und Verzeichnisberechtigungen (umask, chmod, lesen, schreiben, ausführen)

  3. Verstehen, wie Umask die anfänglichen Datei-/Verzeichnisberechtigungen in Linux steuert

  4. Wie führt man ein Bash-Skript aus?

  5. Wie führe ich eine PL-Datei unter Linux aus?

So entfernen Sie ein Verzeichnis in Linux

So ändern Sie Berechtigungen in Linux

So lesen Sie eine Datei mit Leerzeichen in Linux

So benennen Sie ein Verzeichnis unter Linux um

So kopieren Sie das Verzeichnis unter Linux

Grundlegende Linux-Verzeichnisberechtigungen und wie man sie überprüft