Rekursiv Dateiberechtigungen ändern
Um die Berechtigungen von Dateien zu ändern, wird der Befehl “chmod” verwendet, welcher auch einen Schalter zur rekursiven Änderung hat:
-R, --recursive
Dateien und Verzeichnisse rekursiv ändern
Spannend wird es, wenn es um das rekursive Entziehen der “Ausführen”-Berechtigung geht, denn diese müssen Verzeichnisse behalten, damit man weiterhin in sie wechseln kann.
Als Krücke in der Not entpuppt sich der Befehl “find”, welcher mit den richtigen Parametern gestartet eine Unterscheidung zwischen Dateien und Ordnern ermöglicht und somit auch das gezielte Ändern der Berechtigungen:
$ find . -type f -exec chmod -x {} \;
Die Parameter sind hierbei wie folgt:
-type c
Datei ist vom Typ c;:
...
d Verzeichnis
...
f reguläre Datei
...
-exec Befehl ;
führt den Befehl aus; wahr, wenn Status 0 zurückgegeben wird. Alle folgenden Argu‐
mente von find werden als Argumente des Befehls betrachtet, bis ein Argument gefun‐
den wird, das »;« beinhaltet. Die Zeichenkette »{}« wird überall, wo sie in den Ar‐
gumenten erscheint, durch den aktuell verarbeiteten Dateinamen ersetzt, nicht nur
in Argumenten, in denen sie allein steht, wie in einigen Versionen von find. Es
könnte nötig sein, beide Konstruktionen zu maskieren (mit einem »\«) oder in Anfüh‐
rungszeichen zu setzen, um sie vor einer Expansion durch die Shell zu schützen.
The letters rwxXst select file mode bits for the affected users: […], execute/search only if the file is a directory or already has execute permission for some user (X), […]