Denken Sie zuerst: Was ist ein Verzeichnis? Es ist nur eine Liste der Elemente (Dateien und andere Verzeichnisse), die sich innerhalb befinden. Also: Verzeichnis = Liste der Namen.
Lesebit = Wenn gesetzt, können Sie diese Liste lesen. Wenn Sie beispielsweise ein Verzeichnis mit dem Namen haben poems
:
- Sie können
ls poems
und Sie erhalten eine Liste der darin lebenden Gegenstände ( -l
geben keine Details preis!).
- Sie können die Befehlszeilenvervollständigung verwenden, z
touch poems/so <TAB> poems/somefile
.
- Sie können
poems
Ihr Arbeitsverzeichnis nicht erstellen (d cd
. H. Darin ablegen ).
Write bit = Wenn gesetzt, können Sie diese Liste ändern, dh Sie können Namen hinzufügen, umbenennen, löschen. Aber! Sie können dies tatsächlich nur tun, wenn auch das Ausführungsbit gesetzt ist.
Execute bit = Machen Sie dieses Verzeichnis zu Ihrem Arbeitsverzeichnis, dh cd
hinein. Sie benötigen diese Berechtigung, wenn Sie:
- Zugriff (Lesen, Schreiben, Ausführen) auf Elemente, die in ihnen leben.
- Ändern Sie die Liste selbst, dh fügen Sie Namen hinzu, benennen Sie sie um und löschen Sie sie (natürlich muss das Schreibbit im Verzeichnis gesetzt sein).
Interessanter Fall 1 : Wenn Sie über Schreib- und Ausführungsberechtigungen für ein Verzeichnis verfügen, können Sie Elemente, die sich in diesem Verzeichnis befinden, auch dann {löschen, umbenennen}, wenn Sie keine Schreibberechtigung für diese Elemente haben. (Verwenden Sie ein klebriges Bit, um dies zu verhindern.)
Interessanter Fall 2 : Wenn Sie die Berechtigung zum Ausführen (aber nicht zum Schreiben) eines Verzeichnisses und die Berechtigung zum Schreiben für eine darin befindliche Datei haben, können Sie die Datei nicht löschen (da sie aus der Liste entfernt werden muss). Sie können den Inhalt jedoch löschen, z. B. wenn es sich um eine Textdatei handelt, können Sie vi verwenden, um sie zu öffnen und alles zu löschen. Die Datei bleibt dort, ist aber leer.
Zusammenfassung:
Read bit = Sie können die Namen in der Liste lesen.
Schreibbit = Sie können Namen in der Liste {hinzufügen, umbenennen, löschen}, wenn auch das Ausführungsbit gesetzt ist.
Execute bit = Sie können dieses Verzeichnis zu Ihrem Arbeitsverzeichnis machen.
PS: Der von Kusalananda erwähnte Artikel ist eine gute Lektüre.