Los permisos de archivos en WordPress determinan quién puede leer, escribir o ejecutar cada archivo y carpeta de tu sitio. Configurarlos incorrectamente (como 777 o 666) expone tu WordPress a inyección de código, alteración de archivos críticos e instalación de backdoors. La configuración segura estándar es 644 para archivos y 755 para carpetas, con excepciones como wp-config.php que debe ser 600 o 440.

En 30 segundos

  • Los permisos de archivos controlan quién puede leer, escribir y ejecutar cada archivo y carpeta en tu servidor
  • Permisos 777 o 666 abren la puerta a atacantes para modificar código, instalar backdoors o inyectar malware
  • La configuración segura es 644 para archivos, 755 para carpetas, y 600 para wp-config.php
  • Cambios se hacen por SSH con chmod o por FTP en herramientas como FileZilla
  • Verificar permisos regularmente es tan importante como aplicarlos correctamente la primera vez

Permisos Archivos es un mecanismo definido en estándares Unix/Linux que establece qué usuarios o procesos pueden leer, escribir, modificar o ejecutar archivos. En WordPress, configurar permisos correctos (644 para archivos, 755 para directorios) es fundamental para la seguridad y funcionamiento del sitio.

Qué son los permisos de archivos en WordPress

Los permisos de archivos son un sistema heredado de Unix y Linux que controla qué pueden hacer los usuarios con cada archivo y carpeta. Cuando ves algo como «644» o «755», estás mirando una notación octal que representa tres categorías: propietario del archivo, grupo, y otros (cualquiera).

En WordPress, esto importa porque tu servidor web (generalmente corriendo como usuario www-data en Debian/Ubuntu o apache en CentOS) necesita acceso específico a ciertos archivos para funcionar. Si das permisos demasiado amplios, cualquier proceso comprometido puede sobreescribir tu código. Si son muy restrictivos, WordPress no puede escribir en la carpeta de descargas ni actualizar plugins.

Ponele que instalaste WordPress hace un año, todo funciona, y nadie te explicó qué significaban esos numeritos del hosting. Ahora tu sitio fué hackeado (spoiler: probablemente no fue por permisos mal configurados, pero sí contribuyó) y querés entender cómo pasó.

Según la documentación oficial de WordPress en español, los permisos se dividen así: el primer dígito es para el propietario, el segundo para el grupo, el tercero para otros. Cada uno suma valores: 4 (lectura), 2 (escritura), 1 (ejecución).

Por qué los permisos incorrectos son una vulnerabilidad de seguridad

Ojo: permisos 777 no es solo «incómodo». Es una invitación a que cualquiera modifique tus archivos. Un atacante que logre acceso a tu servidor web (incluso con privilegios limitados) puede reescribir tus archivos de plugin, tu tema, o el código de WordPress mismo.

Los riesgos concretos son: inyección de código PHP malicioso en wp-config.php o functions.php, instalación de backdoors que persisten incluso después de cambiar contraseñas, alteración de URLs de redirección para SEO spam, robo de credenciales de base de datos, compromiso de WooCommerce si vendés algo, y facilidad para que el atacante siga penetrando hacia otras carpetas del servidor.

Pasaste tiempo curando contenido, construiste autoridad, metiste dinero en publicidad. Después subís a un hosting barato, el proveedor te dice «configurate los permisos como quieras» (y te deja a 777 por defecto), algún script PHP vulnerable en un plugin viejo que olvidaste actualizar ejecuta código que no esperaba, el atacante sobrescribe tus posts, inyecta enlaces de spam, redirige a tu audiencia a casinos online, y vos descubrís el desastre una semana después cuando Google te baja del ranking. Relacionado: plugins que modifican permisos.

Varios reportes de seguridad documentan que hosting mal configurado (incluyendo permisos abiertos) es la causa raíz en casi el 30% de compromisos de WordPress en sitios pequeños. No es la única causa, pero es facilísima de remediar.

Permisos estándar: 644 para archivos, 755 para carpetas

Esta es la configuración que funciona en 95% de instalaciones WordPress. Acá está el desglose:

PermisoNotaciónSignificadoUso en WordPress
644rw-r–r–Propietario lee y escribe, grupo y otros solo leenArchivos .php, .html, imágenes, .htaccess
755rwxr-xr-xPropietario lee/escribe/ejecuta, grupo y otros leen y ejecutanDirectorios, carpeta wp-content, wp-admin
777rwxrwxrwxTodos pueden leer, escribir, ejecutarNUNCA en producción. Solo debugging temporal
600rw——-Solo propietario puede leer y escribirwp-config.php
440r–r—–Todos pueden leer, solo propietarioAlternativa más restrictiva para wp-config.php
permisos de archivos wordpress diagrama explicativo

¿Qué significa en la práctica? Que tu servidor web puede leer los archivos .php de tu WordPress (porque tiene permisos 755 en el directorio, y 644 en el archivo), pero no puede sobreescribirlos. Solo vos (el propietario, via SSH o FTP) podés modificarlos. La carpeta wp-content/uploads es la excepción: necesita ser escribible porque WordPress guarda imágenes nuevas ahí.

644 para archivos significa: r (lectura) = 4 para vos, r (lectura) = 4 para tu grupo, r (lectura) = 4 para otros. Solo vos tenés w (escritura) = 2. 755 para carpetas suma execute (x = 1) porque los directorios necesitan ejecutarse para ser atravesados.

Excepciones críticas: wp-config.php y directorios especiales

El archivo más importante de WordPress es wp-config.php. Ahí están tus credenciales de base de datos sin encriptar. Si cualquiera puede leerlo, tienes un problema existencial. Ese archivo debe ser 600 (solo vos podés leer y escribir) o 440 (solo vos podés leer). Algunos hosts lo ponen en 440 porque aunque WordPress necesita leerlo, no necesita escribirlo después de la instalación inicial.

Otros directorios con reglas especiales:

  • wp-content/uploads: debe ser 755 para que WordPress pueda crear carpetas nuevas y guardar imágenes. Aunque sea escribible, está protegida porque no ejecuta código PHP (la mayoría de hosts desactivan ejecución en uploads por defecto).
  • .htaccess: si tu servidor es Apache, este archivo controla redirects y seguridad. Ponele 644. Si es Nginx, no lo necesitás.
  • wp-content/cache y wp-content/backup: si usás plugins de caché o backups, estos directorios necesitan ser escribibles por el servidor web (755).

En Nginx (que está tomando cuota de mercado), no usás .htaccess. Los permisos siguen siendo los mismos: 644 archivos, 755 directorios, pero el servidor no lee .htaccess porque Nginx no lo soporta.

Cómo cambiar permisos: SSH vs FTP

Tenés dos opciones: terminal (SSH) si tu host te lo permite, o cliente FTP como FileZilla si estás en hosting compartido más restrictivo.

Por SSH

Conectate via SSH y ejecutá:

find /ruta/a/wordpress -type f -exec chmod 644 {} \;

Esto busca todos los archivos (-type f) y les pone permiso 644. Después:

find /ruta/a/wordpress -type d -exec chmod 755 {} \;

Esto busca todos los directorios (-type d) y les pone 755. Después, wp-config.php es la excepción: Esto se conecta con lo que analizamos en automatizar cambios de permisos.

chmod 600 /ruta/a/wordpress/wp-config.php

Si WordPress necesita escribir algo especial después, por ejemplo actualizaciones automáticas de plugins, vas a ver errores tipo «Unable to create directory wp-content/plugins/nuevo-plugin». En ese caso, algunos hosts requieren que w-p-content sea propiedad del usuario de tu aplicación, no del servidor web. Eso es un problema de chown (change owner), no chmod.

Por FTP

Abrís FileZilla o WinSCP, te conectás al servidor, navegás a cada carpeta, y en propiedades cambias permisos. Es más lento pero funciona si SSH no está disponible. Entrá a cada carpeta importante (wp-admin, wp-content, wp-includes, raíz) y ponele 755. Cada archivo dentro de esas carpetas, 644.

FileZilla: botón derecho en carpeta → File permissions → marcas cajas para Propietario (Read, Write, eXecute), Grupo (Read, eXecute), Others (Read, eXecute) → OK. Eso te da 755. Para archivos, desactivás eXecute.

Propietario y grupo: www-data, apache, y tu usuario

Permisos sin dueño no significan nada. Necesitás saber quién es el propietario (owner) y el grupo de cada archivo. Ahí entra chown (change owner).

Tu servidor web corre bajo un usuario específico. En Debian/Ubuntu es www-data. En CentOS/RHEL es apache. Ese usuario necesita leer (y a veces escribir) tus archivos de WordPress.

Lo ideal después de instalar WordPress es que el propietario sea tu usuario (el que subió los archivos), y el grupo sea www-data. Así:

chown -R tu_usuario:www-data /ruta/a/wordpress

Después ponés los permisos como dijimos: 644 archivos, 755 directorios. Resultado: vos podés editar archivos via SSH, el servidor web puede leerlos, pero nadie más (ni otros usuarios del servidor) puede hacerlo. Para más detalles técnicos, mirá cómo se organizan los plugins.

En algunos hosts (especialmente compartidos) no podés cambiar el owner porque ambos usuarios son el mismo. En ese caso, preguntale al soporte que user corre el PHP.

Errores comunes y cómo evitarlos

«Unable to create directory wp-content/uploads»

Viste este error en WordPress cuando intentaste subir una imagen. Significa que la carpeta uploads no es escribible para el servidor web. Soluciona checkeando que wp-content/uploads sea 755 (o 777 si nada más funcionó, pero eso es un parche, no una solución). Si aún no funciona, preguntale al host cuál es el usuario PHP.

Poner 777 «temporalmente»

No existe lo temporal en seguridad. Alguien escribió 777 como «solución rápida» y se olvidó durante dos años. Tu sitio fue hackeado seis meses después porque había un plugin vulnerable y los permisos abiertos lo permitieron. Resolvé el problema raíz (actualizar plugins, cambiar owner, usar SFTP en vez de FTP) en vez de abrir la puerta.

No proteger wp-config.php

Si tiene 644 o peor 755, cualquiera que logre acceso de lectura al servidor puede ver tu usuario y contraseña de base de datos. Debería ser 600 mínimo, preferentemente 440.

Cambiar permisos sin especificar tipo (archivo vs carpeta)

Si ejecutás chmod -R 644 /todo, estás metiendo 644 en directorios también. Los directorios no serán atravesables (van a fallar accesos). Siempre usá find -type f para archivos y -type d para directorios, separadamente.

Olvidar hacer cambios recursivos

Hiciste chmod 755 wp-content, pero no los archivos dentro. El permiso de carpeta cambió, pero los archivos siguen en 777 (o los permisos que tenían). Siempre usá -R (recursive) o find para aplicar a todo el árbol.

Verificar y auditar permisos en tu WordPress

Después de configurar, necesitás verificar que quedó bien. Por SSH, usá ls -la para ver propietarios y permisos: Tema relacionado: estrategias de seguridad en capas.

ls -la /ruta/a/wordpress

Te muestra un listado donde la primera columna es permisos (tipo «drwxr-xr-x» que es lo mismo que 755 pero en forma legible), después usuario y grupo, después nombre de archivo.

Por FTP, abrís propiedades de carpeta y ves un modal con checkboxes para cada permiso.

Algunos plugins detectan permisos inseguros y te avisan en el dashboard, pero confiar en un plugin para esto es medio que delegar responsabilidad. Vos deberías hacer un audit manual cada 3-6 meses, especialmente después de actualizar WordPress o cambiar de hosting.

Checklist post-configuración: ¿wp-config.php es 600? ¿wp-admin y wp-includes son 755? ¿Archivos .php son 644? ¿uploads es 755 y escribible? ¿.htaccess (si existe) es 644? Listo.

Preguntas Frecuentes

¿Cuáles son los permisos correctos para los archivos y carpetas de WordPress?

Archivos: 644. Directorios: 755. Excepciones: wp-config.php 600, y carpetas donde WordPress escribe (wp-content/uploads) 755 pero con propietario correcto (usuario web, no random).

¿Por qué es importante configurar correctamente los permisos en WordPress?

Porque permisos abiertos (777) permiten que atacantes modifiquen tu código PHP, instalen backdoors, inyecten malware, o roben datos de la base de datos. Es una de las líneas de defensa más fáciles de implementar.

¿Cómo cambio los permisos de mis archivos de WordPress?

Por SSH: find /ruta -type f -exec chmod 644 {} \; para archivos y find /ruta -type d -exec chmod 755 {} \; para directorios. Por FTP: accedés a FileZilla o WinSCP, botón derecho en cada carpeta, File Permissions, configurás los checkboxes, y guardás.

¿Qué diferencia hay entre permisos 644 y 755 en WordPress?

644 (rw-r–r–) es para archivos: solo el propietario puede escribir, el grupo y otros solo leen. 755 (rwxr-xr-x) es para directorios: todos pueden entrar y leer, pero solo el propietario puede modificar contenido. El «execute» en directorios significa permisos para atravesarlos.

¿Cuál debe ser el permiso del archivo wp-config.php?

600 (rw——-), que significa solo vos podés leer y escribir. Algunos hosts usan 440 (r–r—–) si el archivo nunca debe cambiar después de la instalación. Nunca debe ser 644 o mayor porque contiene credenciales de base de datos sin encriptar.

Conclusión

Los permisos de archivos son una línea de defensa fundamental que muchos ignoramos porque no vemos el impacto inmediato. Configurarlos bien (644 archivos, 755 carpetas, 600 para wp-config.php) toma 10 minutos y cierra una puerta que los atacantes frecuentemente prueban.

No es la solución única. Necesitás también mantener WordPress actualizado, deshabilitar XML-RPC si no lo usás, instalar un WAF, hacer backups regulares, y monitorear tu sitio. Pero de la lista de cosas que hacen diferencia real y son fáciles de implementar, permisos seguros ocupa un lugar alto.

Si tu hosting actual no te deja cambiar permisos, o te dice que «todos nuestros servidores corren con 777 para comodidad», esa es una bandera roja. Considerá cambiar de proveedor. Empresas como donweb.com te dan acceso SSH completo y documentación clara sobre esto. Tu seguridad vale más que lo que ahorres en hosting barato.

Fuentes

Categorizado en: