Comment définir récursivement des autorisations en lecture seule?

14

J'ai un répertoire très volumineux et profond. Je voudrais que tout cela soit en lecture seule. Le problème est que je suppose que je dois faire la distinction entre les fichiers (qui obtiendront a=r) et les répertoires (qui obtiendront a=rx).

Comment puis je faire ça?

David B
la source
Je viens de trouver ceci: chmod a=rXqui résout mon problème. Depuis man: (X)execute/search only if the file is a directory or already has execute permission for some user
David B
Si c'est censé être une réponse, cela devrait être dans une réponse.
Ignacio Vazquez-Abrams

Réponses:

13

Je viens de trouver ceci: chmod a=rXqui résout mon problème. De l'homme: (X) execute/search only if the file is a directory or already has execute permission for some user.

David B
la source
7
  1. chmodaccepte le mode X, qui ne définit que les xrépertoires.a=X

  2. Vous pouvez également simplement supprimer l'autorisation d'écriture: a-w

user1686
la source
3
+1 pour l'option # 2, la façon la plus logique
Matteo Riva
3
+1 pour l'option 2 également, mais -0,5 pour l'incompréhension de ce que signifie le capital X dans chmod
Doug Harris
3

Les suggestions ci-dessus n'ont pas fonctionné pour moi, tous les dossiers ont été définis en lecture seule.
Un collègue m'a donné ceci, qui fonctionne:

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