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
, odert
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 (alsocd
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.