Skip to content

Todo para WordPress, el desarrollo web — y mucho más

🔐 Permisos correctos de archivos y carpetas para WordPress: una guía completa sobre 755 y 644

🔐 Permisos correctos de archivos y carpetas para WordPress: una guía completa sobre 755 y 644

¿Trasladó su sitio a un hosting y los plugins dejaron de instalarse? ¿O los archivos multimedia no se suben a través del panel de administración? ¿O una actualización del núcleo falla con el mensaje «Could not create directory»? ¿Le suena familiar?

La causa es casi siempre la misma: permisos incorrectos de archivos y carpetas. Un servidor local (OpenServer, MAMP) se ejecuta bajo el usuario actual de Windows/macOS y todo lo perdona. Un hosting Linux de producción, no. Cada archivo y directorio tiene un propietario y tres niveles de permisos, y si el servidor web no puede escribir en la carpeta requerida, el sitio falla silenciosamente o con un error críptico.

A continuación encontrará qué significan realmente 755 y 644, cómo configurarlos de una vez para todo el sitio mediante FileZilla y qué archivos requieren un manejo especial.

💡 Resumen rápido:

  • Qué significan los números 755 y 644 y por qué 777 es un agujero de seguridad
  • Cómo establecer permisos masivamente mediante FileZilla en 2 pasadas: primero carpetas, luego archivos
  • Qué permisos necesitan wp-config.php, .htaccess y la carpeta wp-content
  • Cómo hacer lo mismo por SSH con un solo comando en 5 segundos

Qué significan los permisos y por qué 777 es un desastre

Cada archivo y carpeta en un servidor Linux almacena tres conjuntos de permisos: para el propietario, para el grupo y para todos los demás. El número es una suma de bits: 4 (lectura) + 2 (escritura) + 1 (ejecución, que para las carpetas significa poder entrar en ellas).

755 para carpetas se desglosa así: el propietario puede hacerlo todo (7), el grupo y otros pueden leer y entrar (5). La carpeta es accesible para que el servidor web la explore y cree archivos y subcarpetas dentro, pero ningún agente externo puede eliminarla o renombrarla.

644 para archivos: el propietario puede leer y escribir (6), los demás solo pueden leer (4). Los archivos PHP son ejecutados por el intérprete, no por el sistema, por lo que no necesitan el bit de ejecución.

777 (propietario+grupo+otros = todo) es una puerta abierta. Cualquier proceso en el servidor, incluidos scripts de sitios vecinos en un hosting compartido, puede leer, modificar y eliminar sus archivos. Según datos de WPScan de 2025, los permisos incorrectos se encuentran entre los cinco vectores de ataque más comunes en WordPress en hostings compartidos. No establezca nunca 777. Si un plugin o tema exige tales permisos, es una señal de alarma.

Qué permisos considera correctos WordPress

La documentación oficial de WordPress define los permisos recomendados de la siguiente manera:

Recurso

Permisos

Por qué

Carpetas (todos los niveles de anidamiento)

755

El servidor web debe entrar y crear archivos dentro

Archivos.php,.js,.css y archivos multimedia

644

Legibles por todos, escribibles solo por el propietario

wp-config.php

600 o 440

Contiene las contraseñas de la base de datos, legible solo por el propietario

.htaccess

644

Leído por Apache, pero no debería ser accesible externamente

En la mayoría de los hostings, el propietario del sistema de archivos coincide con el usuario bajo el que se ejecuta PHP (configuración suPHP/FastCGI + suEXEC). En esta configuración, los permisos 755/644 son suficientes: WordPress puede escribir en wp-content/uploads, actualizar el núcleo y los plugins, e instalar temas sin necesidad de elevar a 777.

Compruebe si esto se aplica a su hosting: vaya al panel de administración e intente instalar cualquier plugin gratuito. Si se instala sin pedir credenciales FTP, el esquema 755/644 funciona y los permisos ya son correctos.

Cómo establecer permisos mediante FileZilla: paso a paso

FileZilla es un cliente FTP gratuito que puede cambiar permisos de forma masiva y recursiva. Descárguelo desde el sitio web oficial si aún no lo tiene.

Paso 1: conéctese y navegue hasta la raíz de WordPress

Conéctese a su hosting por FTP (el usuario y la contraseña son los mismos de su cuenta de hosting, puerto 21). En el panel derecho, navegue hasta la carpeta raíz del sitio, donde se encuentran wp-config.php, wp-content, wp-admin y wp-includes.

Paso 2: establezca 755 en todas las carpetas

Seleccione todos los archivos y carpetas en la raíz (Ctrl+A). Haga clic derecho → «Permisos del archivo».

Menú contextual de FileZilla mostrando la opción de permisos de archivo

En el cuadro de diálogo que se abre, introduzca 755 en el campo «Valor numérico». Marque la casilla «Recursión en subdirectorios». Seleccione la opción «Aplicar solo a directorios». Haga clic en Aceptar.

Diálogo de permisos de FileZilla mostrando 755 para todos los directorios recursivamente

FileZilla recorrerá cada carpeta y subcarpeta del sitio y establecerá 755. El proceso tarda desde unos segundos hasta un par de minutos, dependiendo del tamaño del sitio.

Paso 3: establezca 644 en todos los archivos

Seleccione todo en la raíz de nuevo (Ctrl+A), haga clic derecho otra vez → «Permisos del archivo».

Ahora introduzca 644. Marque «Recursión en subdirectorios». Seleccione la opción «Aplicar solo a archivos». Aceptar.

Diálogo de permisos de FileZilla mostrando 644 para todos los archivos recursivamente

Listo. Dos pasadas (carpetas y archivos) y todo el sitio queda ajustado al estándar.

Método rápido por SSH: el comando find

Si tiene acceso SSH al servidor, la misma operación se realiza con dos comandos y en cinco segundos:

1find /path/to/wordpress -type d -exec chmod 755 {} \;
2find /path/to/wordpress -type f -exec chmod 644 {} \;

El primero recorre todas las carpetas (-type d) y establece 755. El segundo recorre todos los archivos (-type f) y establece 644. Sustituya /path/to/wordpress por la ruta real a la raíz de su sitio (normalmente /home/username/public_html).

Después, refuerce por separado wp-config.php:

1chmod 600 /path/to/wordpress/wp-config.php

Y .htaccess, si tiene uno (servidor Apache):

1chmod 644 /path/to/wordpress/.htaccess

Si su sitio funciona con Nginx, no existe el archivo .htaccess, así que omita este paso.

Qué hacer si los permisos se restablecen

Situación: configuró 755/644, todo funcionaba, y una semana después vuelve a tener el mismo error. La causa suele ser un proceso que se ejecuta bajo un usuario diferente.

Culpables típicos:

  • Tareas cron del hosting. Algunos hostings ejecutan scripts de mantenimiento como root, y estos crean archivos con permisos que el servidor web no puede sobrescribir después. Solución: solicite al soporte que configure cron para que se ejecute bajo su usuario.
  • Plugin de respaldo de terceros. Escribe volcados y archivos en wp-content bajo el usuario con el que se ejecute. Revise los registros del plugin. Si crea archivos bajo un usuario distinto al propietario del sitio, cambie a una alternativa.
  • Plugin de caché. Crea carpetas de caché con permisos incorrectos. Vaya a la configuración del plugin y busque el botón «Limpiar caché» o «Restablecer permisos».

Solución rápida universal: repita el procedimiento de la sección anterior (FileZilla en 2 pasadas o dos comandos find). Esto no resolverá la causa raíz, pero restaurará el sitio a un estado funcional.

⁉️🤔 Preguntas frecuentes

¿Qué pasa si el sitio falla con una «pantalla blanca de la muerte» tras cambiar los permisos?

Una pantalla blanca (WSOD) tras un cambio masivo de permisos es extremadamente raro, pero posible. Primero: active WP_DEBUG en wp-config.php para ver el texto del error en lugar de una pantalla blanca. Segundo: compruebe si accidentalmente estableció 644 en las carpetas (las carpetas necesitan el bit de ejecución, es decir, un 5 al final). Corríjalo con un comando find: find /path -type d -exec chmod 755 {} \;. Esto es suficiente en la mayoría de los casos. Si el sitio sigue sin funcionar, restaure desde la copia de seguridad y cambie los permisos gradualmente: primero en wp-content, luego en la raíz, observando las reacciones.

¿Puedo establecer los permisos a través del administrador de archivos integrado del hosting?

Sí, pero solo para archivos y carpetas individuales. Los hostings con cPanel ofrecen un Administrador de Archivos con la opción «Cambiar permisos» en el menú contextual. Sin embargo, establecer permisos recursivamente en cientos o miles de archivos a través de una interfaz web es prácticamente imposible. Para operaciones masivas, use FileZilla o SSH.

¿Qué permisos debe tener la carpeta wp-content/uploads?

Los estándar 755, como todas las demás carpetas. Si un plugin o tema crea subcarpetas dentro de uploads y tiene problemas, compruebe el propietario del proceso (debería coincidir con el propietario de la carpeta) en lugar de elevar los permisos a 777. A veces el problema se soluciona añadiendo define('FS_METHOD', 'direct'); a wp-config.php.

¿Necesito establecer permisos en los archivos dentro de wp-admin y wp-includes?

Sí, los estándar 644 para archivos y 755 para carpetas, igual que el resto del sitio. El procedimiento de FileZilla (seleccionar todo en la raíz) los gestiona automáticamente.

Mi hosting exige 777 en algunas carpetas. ¿Es normal?

No. Exigir 777 es una señal de que PHP en el servidor se ejecuta bajo un usuario diferente al propietario de los archivos (por ejemplo, mod_php sin suEXEC). En esta configuración, WordPress no puede escribir en las carpetas sin acceso «mundial». Opciones: cambie a un hosting que use suPHP/FastCGI (la mayoría de los modernos lo hacen), o añada define('FS_METHOD', 'direct'); a wp-config.php, lo cual a veces es suficiente.

Los permisos correctos son una base, no una opción

Establecer 755 en las carpetas y 644 en los archivos cierra el canal más común de errores «misteriosos» al migrar un sitio. Dos minutos en FileZilla o dos comandos SSH ahorran horas de conjeturas revisando registros.

Si su sitio está en un buen hosting con suPHP/FastCGI, estos permisos son suficientes para todo: instalar plugins, subir medios y realizar actualizaciones automáticas del núcleo. No eleve los permisos a 777, incluso si las instrucciones de un plugin antiguo lo solicitan. Y añada wp-config.php como un elemento aparte: chmod 600. Contiene la contraseña de la base de datos, y los agentes externos no necesitan acceder a ella.