Linux: ¿cómo chmod recursivamente una carpeta?

41

¿Cómo puedo recursivamente chmod todo dentro de una carpeta?

Por ejemplo, tengo una carpeta llamada varque contiene muchas subcarpetas y archivos.

¿Cómo puedo aplicar chmod 755 recursivamente a esta carpeta y a todo su contenido?

Negro
fuente

Respuestas:

66

Consulte el manual ( man chmod):

-R, --recursive
change files and directories recursively

chmod -R 755 /path/to/directory realizaría lo que quieras.

Sin embargo…

  1. Por lo general, no desea 755 todos los archivos ; estos deben ser 644, ya que a menudo no necesitan ser ejecutables. Por lo tanto, solo puede hacer find /path/to/directory -type d -exec chmod 755 {} \;para cambiar los permisos de directorio. Use -type fy chmod 644para aplicar los permisos a los archivos.

  2. Esto sobrescribirá los permisos existentes. No es una buena idea hacerlo /var: esa carpeta ya tiene los permisos correctos configurados por el sistema. Por ejemplo, algunos directorios /varrequieren permisos 775 (por ejemplo, /var/log).

Entonces, antes de hacerlo sudo chmod, particularmente en las carpetas del sistema, haga una pausa y piense si eso es realmente necesario.

slhck
fuente
66
Al agregar bits de permiso, [augo]+Xse admite mayúsculas para agregar solo + x si el objeto ya es ejecutable.
Grawity
No es la carpeta var de linux, sino de mi sitio web. ¡Pero sigue siendo una buena pista!
Negro
1
@Black Claro, solo quería agregar una gran advertencia. Para sitios web en particular (la mayoría de los CMS como WordPress o Drupal lo desean), los permisos de directorios y archivos deben ser diferentes por razones de seguridad, consulte, por ejemplo, aquí para WordPress.
slhck
@grawity: no puedo creer que no lo haya notado +Xantes: es muy útil con varios archivos, ya sea desde -Runa máscara de archivo o en el procesamiento de archivos encontrados con find. Un consejo realmente útil.
AFH