¿Cómo puedo establecer recursivamente permisos de solo lectura?

14

Tengo un directorio muy grande y profundo. Me gustaría hacer que todo sea de solo lectura. El problema es que supongo que tengo que distinguir entre archivos (que obtendré a=r) y directorios (que obtendré a=rx).

¿Cómo puedo hacer eso?

David B
fuente
Acabo de encontrar esto: lo chmod a=rXque resuelve mi problema. De man: (X)execute/search only if the file is a directory or already has execute permission for some user
David B
Si se pretende que sea una respuesta, debería estar en una respuesta.
Ignacio Vazquez-Abrams

Respuestas:

13

Acabo de encontrar esto: lo chmod a=rXque resuelve mi problema. Del hombre: (X) execute/search only if the file is a directory or already has execute permission for some user.

David B
fuente
7
  1. chmodacepta el modo X, que solo se establece xen directorios.a=X

  2. También puede eliminar el permiso de escritura: a-w

usuario1686
fuente
3
+1 para la opción n. ° 2, la forma más lógica
Matteo Riva el
3
+1 para la opción 2 también, pero -0.5 por no entender qué significa X mayúscula en chmod
Doug Harris
3

Las sugerencias anteriores no funcionaron para mí, todas las carpetas se configuraron como de solo lectura.
Un colega me dio esto, que funciona:

find . -type f -exec chmod a-w {} \;
Odik Paulsen extraño
fuente
1
find somepath \( -type f -exec chmod a=r {} \; \) -o \( -type d -exec chmod a=rx {} \; \)
Ignacio Vazquez-Abrams
fuente