Wie kann ich rekursiv schreibgeschützte Berechtigungen festlegen?

14

Ich habe ein sehr großes und tiefes Verzeichnis. Ich möchte, dass alles nur lesbar ist. Das Problem ist, ich denke, ich muss zwischen Dateien (die bekommen werden a=r) und Verzeichnissen (die bekommen werden a=rx) unterscheiden.

Wie kann ich das machen?

David B
quelle
Ich habe gerade folgendes gefunden: chmod a=rXwas mein Problem löst. Aus dem man: (X)execute/search only if the file is a directory or already has execute permission for some user
David B
Wenn das eine Antwort sein soll, sollte es eine Antwort sein.
Ignacio Vazquez-Abrams

Antworten:

13

Ich habe gerade folgendes gefunden: chmod a=rXwas mein Problem löst. Vom Mann: (X) execute/search only if the file is a directory or already has execute permission for some user.

David B
quelle
7
  1. chmodAkzeptiert den Modus X, der nur xauf Verzeichnisse setzt.a=X

  2. Sie können auch einfach die Schreibberechtigung entfernen: a-w

user1686
quelle
3
+1 für Option # 2, der logischste Weg
Matteo Riva
3
+1 für Option 2 auch, aber -0.5 für Missverständnisse, was Kapital X in chmod bedeutet
Doug Harris
3

Die obigen Vorschläge haben bei mir nicht funktioniert, alle Ordner waren schreibgeschützt.
Ein Kollege gab mir das, was funktioniert:

find . -type f -exec chmod a-w {} \;
Odd Erik Paulsen
quelle
1
find somepath \( -type f -exec chmod a=r {} \; \) -o \( -type d -exec chmod a=rx {} \; \)
Ignacio Vazquez-Abrams
quelle