Du kannst dir auch auf im Terminal Verzeichnisinhalte (teilweise) z.B. mit ls von Verzeichnissen mit der Berechtigung 440 anschauen.
Was weder in der GUI noch im Terminal geht, ist Unterverzeichnisse von Verzeichnissen mit der Berechtigung 440 anschauen.
Die Gründe dahinter liegen (meines Wissens) im Verzeichnismodell von UNIX. Verzeichnisse sind Inodes, die Listen an weiteren Inodes speichern (eben Verzeichnisse oder Dateien).
Wenn dieser Verzeichnis-Inode nur eine Leseberechtigung hat, dann darf ich die Liste zwar lesen, aber eben nicht auf die Inodes dahinter zugreifen.
Der Zugriff auf die Inodes wird gleichgesetzt mit "das Verzeichnis ausführen".
Das zeigt auch die Ausgabe von ls:
$ mkdir deep; cd deep
$ mkdir foo
$ touch bar
$ touch foo/bar
$ cd ..
$ chmod 400 deep
$ ls -l deep
ls: Zugriff auf 'deep/bar' nicht möglich: Keine Berechtigung
ls: Zugriff auf 'deep/foo' nicht möglich: Keine Berechtigung
insgesamt 0
-????????? ? ? ? ? ? bar
d????????? ? ? ? ? ? foo
Die Liste darf gelesen werden, aber die Inodes der Dateien und Verzeichnisse nicht, also auch nicht deren Attribute, wie Größe, Berechtigungen etc.
Ich ändere das immer mit:
$ find -type f -exec chmod ... {} \;
$ find -type d -exec chmod ... {} \;Ansonsten kann chmod das auch, wenn du das Kommando relativ machst. Um z.B. die Schreibberechtigung zu entfernen funktioniert:
$ chmod -R a-w pfad