Ir al contenido

La carpeta existe, pero no se puede escribir dentro

Esta guía es para el caso en el que Vulnity sí encuentra su carpeta segura, pero no puede escribir archivos dentro.

Úsala si en WordPress ves un aviso parecido a este:

  • Vulnity found the secure firewall storage directory, but it could not write files inside it...
  • Vulnity found its secure log storage directory, but it could not write files inside it...

La carpeta ya existe, pero PHP no puede guardar archivos dentro.

La ruta principal es:

wp-content/vulnity-data/

Y las subcarpetas que necesita Vulnity son:

wp-content/vulnity-data/firewall/
wp-content/vulnity-data/logs/

Corrige permisos de escritura en estas rutas:

wp-content/vulnity-data/
wp-content/vulnity-data/firewall/
wp-content/vulnity-data/logs/
  1. Abre el administrador de archivos de tu hosting.
  2. Entra en la instalación de WordPress.
  3. Ve a wp-content/.
  4. Entra en vulnity-data/.
  5. Cambia permisos de:
    • vulnity-data
    • firewall
    • logs
  6. Prueba primero con:
755
  1. Si sigue fallando, prueba:
775
  1. Recarga el panel de WordPress.

Entonces el problema probablemente no es el permiso numérico, sino el propietario o grupo.

Ejemplo típico:

  • wp-content/ pertenece a user:user
  • wp-content/vulnity-data/logs/ pertenece a root:root

En ese caso, PHP puede seguir sin escribir aunque la carpeta tenga 775.

Desde la raíz de WordPress:

Ventana de terminal
chmod 755 wp-content/vulnity-data
chmod 755 wp-content/vulnity-data/firewall
chmod 755 wp-content/vulnity-data/logs

Si sigue saliendo el aviso:

Ventana de terminal
chmod 775 wp-content/vulnity-data
chmod 775 wp-content/vulnity-data/firewall
chmod 775 wp-content/vulnity-data/logs

Es importante que el propietario no sea root, que sea igual que el de las demás carpetas.

Ventana de terminal
stat -c '%U %G %n' wp-content wp-content/vulnity-data wp-content/vulnity-data/firewall wp-content/vulnity-data/logs

Lo recomendable es que vulnity-data, firewall y logs tengan el mismo propietario/grupo que wp-content.

Si conoces el usuario correcto:

Ventana de terminal
chown -R <usuario>:<grupo> wp-content/vulnity-data

Ejemplo:

Ventana de terminal
chown -R user:user wp-content/vulnity-data

Normalmente el problema ya no es el número de permisos, sino el propietario o grupo del directorio.

Puedes enviar esto a tu hosting:

En cada carga de página del admin — y, desde el plugin 1.4.0, en cada heartbeat (aprox. cada 6 horas) — Vulnity reintenta elevar los permisos de la carpeta (chmod 755) antes de rendirse. Si el problema de propietario subyacente se corrige, el aviso se limpia solo en la siguiente comprobación, y el badge de aviso del panel de Vulnity se limpia con el siguiente heartbeat. Los pasos manuales solo hacen falta cuando PHP realmente no tiene permisos de escritura sobre estas carpetas.

Cuando esté bien:

  • Desaparecerá el aviso de Vulnity.
  • El plugin podrá crear o actualizar:
wp-content/vulnity-data/firewall/blocks.php
wp-content/vulnity-data/logs/vulnity-log.php
  • No hace falta tocar Apache.
  • No hace falta tocar Nginx.
  • No hace falta cambiar nada en uploads — salvo que el mensaje que veas mencione wp-content/uploads/vulnity-data, que es una carpeta distinta con su propia guía.
  • No hace falta usar 777 salvo prueba temporal muy puntual.