Um Verzeichnissen, aber nicht Dateien Ausführungs- (Such-) Berechtigungen zu erteilen, verwenden Sie:
chmod -R +X .
Um alle Berechtigungen wie in Ihrem Beispiel zuzuweisen, verwenden Sie:
chmod -R u=rwX,g=rX,o= .
-R
ändert Dateien und Verzeichnisse rekursiv, während +X
setzt nur Ausführen/Suchen, wenn die Datei ein Verzeichnis ist oder bereits Ausführungsrechte für einen Benutzer hat. r
und w
sind natürlich zum Lesen bzw. Schreiben.
Modus X
(obere x ) ist sowohl in der traditionellen Handbuchseite als auch in der Info-Dokumentation dokumentiert.
Es sollte auch auf anderen Unix-ähnlichen Systemen funktionieren, z. FreeBSD, NetBSD oder OpenBSD. Zitat aus der Manpage chmod(1) von The Open Group Base Specifications Ausgabe 7, Ausgabe 2018:
Das X Perm-Symbol wurde von BSD-basierten Systemen übernommen, da es häufig gewünschte Funktionen bei rekursiven (-R Option) Änderungen. Eine ähnliche Funktionalität wird von find nicht bereitgestellt Dienstprogramm. Historische BSD-Versionen von chmod , unterstützte jedoch nur X mit op +; es wurde in diesem Band von POSIX.1-2017 erweitert, weil es auch mit op nützlich ist =. (Es wurde auch für op hinzugefügt - obwohl es x dupliziert , in diesem Fall, weil es intuitiv und einfacher zu erklären ist.)
man 1 chmod
info '(coreutils)Conditional Executability'
Wenn Sie es rekursiv machen möchten, d.h. , zu Verzeichnissen innerhalb von Verzeichnissen innerhalb von Verzeichnissen, ist der zu verwendende Befehl:
find /path/to/starting/directory -type d -exec chmod +x {} \;
Dadurch werden alle und nur Unterverzeichnisse lokalisiert (-Typ d Flag) des Verzeichnisses /path/to/starting/directory und führt dann die erforderliche Änderung der Ausführungsberechtigung für jeden von ihnen durch. Das Leerzeichen vor \; ist obligatorisch.