Idioma
Categoría
Buscar

Cambiar permisos solo para directorios o archivos de forma recursiva

Comandos útiles en la terminal de Linux para corregir los permisos en grandes estructuras de archivos y directorios

Cambiar permisos solo para directorios o archivos de forma recursiva
En Terminal Por Rudi Drusian Lange
Publicado el
Última actualización

Antes de que empieces

Asegúrese de saber lo que está haciendo, cambiar los permisos, especialmente de forma recursiva, puede causar problemas graves, haciendo que los archivos, programas y carpetas sean inaccesibles. Deshacer cambios puede suponer mucho trabajo, cada estructura tiene particularidades en sus permisos.

Cambiando para todo

Usando el parámetro -R del comando chmod es posible aplicar de forma recursiva el mismo permiso a todos los archivos y carpetas.

$ Shell

chmod -R 755 /path/to/base/dir

Para archivos o carpetas por separado, consulte a continuación.

Directorios

Para cambiar el permiso de todos los subdirectorios de forma recursiva desde un directorio base.

$ Shell

# Permiso 755 (drwxr-xr-x)
find /ruta/al/dir/base -type d -exec chmod 755 {} +

# Otra manera
chmod 755 $(find /ruta/al/dir/base -type d)

# Para directorios con demasiados archivos
find /ruta/al/dir/base -type d -print0 | xargs -0 chmod 755

# Usar la carpeta actual como directorio base
find . -type d -exec chmod 755 {} +

Se utilizaron los permisos 755 (drwxr-xr-x), que es más común para directorios y es la opción predeterminada al crear nuevas carpetas.

El punto (.) representa el directorio actual y se puede utilizar en lugar de la ruta al directorio base en cualquiera de los comandos anteriores.

Archivos

Para cambiar las permisos de todos los archivos en el directorio base definido en el comando y sus subdirectorios de forma recursiva:

$ Shell

# Permiso 644 (-rw-r--r--)
find /ruta/al/dir/base -type f -exec chmod 644 {} +

# Otra manera
chmod 644 $(find /ruta/al/dir/base -type f)

# Para directorion con muchos archivos
find /ruta/al/dir/base -type f -print0 | xargs -0 chmod 644

# Usar la carpeta actual como directorio base
find . -type f -exec chmod 644 {} + 

Se aplicaron los permisos 644 (-rw-r--r--), que es la opción predeterminada al crear archivos de texto. El uso de este permiso en un script eliminará su permiso de ejecución, lo que hará que pierda su funcionalidad.

Referencias

Este no es mi idioma original y no lo hablo muy bien. Utilicé mis pocos conocimientos y herramientas de traducción para redactar el texto de este artículo. Disculpe los posibles errores ortográficos o gramaticales, se agradecen sugerencias de correcciones y se pueden enviar al correo electrónico de contacto que se encuentra en el pie de página del sitio. Mi intención es compartir algunos conocimientos y espero que esta traducción sea lo suficientemente buena.