07 kann dies tatsächlich selbst tun; die 19 Symbolische Berechtigung bedeutet "Ausführen, wenn es Sinn macht", was im Allgemeinen für Verzeichnisse, aber nicht für Dateien bedeutet. Sie können also verwenden:
chmod -R u=rwX,go=rX /path/to/htdocs
Das einzige potenzielle Problem besteht darin, dass 26 26 ist, wenn eine der einfachen Dateien bereits einen Ausführungssatz hat geht davon aus, dass es beabsichtigt ist und behält es bei. Wenn dies ein potenzielles Problem ist und Sie haben die GNU-Version von 35 (d.h. Sie sind unter Linux), können Sie es wie folgt dazu bringen, alle verirrten Ausführungsberechtigungen zu entfernen:
chmod -R a-x,u=rwX,go=rX /path/to/htdocs
Leider funktioniert dieser Trick nicht mit der bsd (/macOS) Version von 43 (Bei anderen Versionen bin ich mir nicht sicher). Dies liegt daran, dass die BSD-Version den 50 anwendet Berechtigung basierend auf "dem ursprünglichen (unmodifizierten) Modus", d.h. ob es irgendwelche Ausführungsbits vorher hatte die 66 Modifikation durchgeführt wurde (siehe 70 Seite).
Verwenden Sie 82 um nach Verzeichnissen zu suchen und chmod darauf anzuwenden:
find -type d | xargs chmod 775
Verwenden Sie den Typ 95 für Datei:
find -type f | xargs chmod 775
Verwenden Sie 102 von find Option zum Beschränken von Aktionen auf Dateien und Verzeichnisse. Verwenden Sie den 115 Option zum Angeben alternativer Aktionen für verschiedene Typen, sodass Sie nur 122 ausführen müssen einmal, anstatt separat für jeden Typ.
find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +