Denken Sie einen Moment über Ihre Anforderung nach. Haben Sie (möglicherweise) ausführbare Dateien (Skripte oder Binärdateien) in Ihrem Verzeichnisbaum? Wenn ja, möchten Sie die Ausführungsberechtigung (auch von sich selbst) entfernen oder die Ausführungsberechtigung unberührt lassen? Wenn Sie die Ausführungsberechtigung unberührt lassen möchten, sollten Sie chmod o-w
verwenden um w zu entfernen (subtrahieren). Rituserlaubnis vom o nur dieses Feld.
Außerdem, wie Anthon betont, die find
Der in der anderen Antwort angegebene Befehl führt den chmod
aus Programm einmal für jede Datei, die von allen Benutzern beschreibbar ist, die es findet. Es ist etwas effizienter zu sagen
find top-level_directory -perm -2 -type f -exec chmod o-w {} +
Dies führt chmod
aus mit vielen Dateien auf einmal, wodurch die Anzahl der Execs minimiert wird.
P.S. Sie brauchen die führenden Nullen auf der 2
nicht .
find /dir/stuct/path -perm -0002 -type f -exec chmod 664 {} \;
Das "{}" steht für die von find gefundene Datei. Das "\;" beendet den auszuführenden Befehl.