Wer kennt es nicht? Hantiert man rekursiv mit chmod herum, steht man immer vor dem Problem, dass man Verzeichnisse unterschiedlich von Dateien behandeln muss. Verlieren nämlich Verzeichnisse das Execution-Bit (--x), kann man nicht mehr in diese cden …
Fortgeschrittene Linuxer verwenden in solchen Fällen wahrscheinlich einen Zweizeiler in der Form …
$ find /unclean-directory -type d -exec chmod 700 '{}' ';' $ find /unclean-directory -type f -exec chmod 600 '{}' ';'
Doch die wahren Profis wissen (wie ich seit gestern), dass das noch viel, viel einfacher funktioniert:
$ chmod -R u=rwX,go= /unclean-directory
Das grosse X sagt chmod, dass es das Executable-Bit nur bei Verzeichnissen setzen soll (und bei Dateien, die dieses bereits gesetzt haben). u=rwX bedeutet, dass der Owner der Datei Lese-, Schreib und (variable) Exekutionsrechte erhält. go= sagt aus, dass die Gruppe sowie die Anderen (others) keine Berechtigung erhalten. Ausgedeutscht also 700 für Verzeichnisse und 600 für Dateien.
Quellen: The use of the uppercase X in chmod und How can I change all of the contents inside of directory to what the default file ownership and permissions are?