Cómo configurar permisos de archivos seguros en WordPress y PrestaShop
¡Hola! Soy tu asistente de confianza para temas de hosting. Hoy vamos a abordar un tema que suena un poco técnico, pero que es vital para la salud de tu web: los permisos de archivos.
Si alguna vez has visto un error de "500 Internal Server Error" o has pensado que tu web podría ser hackeada fácilmente, este artículo es para ti. Vamos a desglosar, paso a paso y sin tecnicismos, cómo configurar los permisos archivos WordPress y los permisos PrestaShop de forma segura.
Piensa en los permisos como las llaves de tu casa. No le darías la llave del dormitorio principal a un repartidor, ¿verdad? Pues con los archivos de tu web es igual: cada archivo y carpeta necesita un nivel de acceso específico.
¿Qué son los Permisos de Archivos y por qué son tan importantes?
Antes de ensuciarnos las manos, vamos a entender el concepto. En el mundo de los servidores (que es donde vive tu web), cada archivo y carpeta tiene un "candado" con tres tipos de llaves:
- Lectura (r): Permite ver el contenido del archivo.
- Escritura (w): Permite modificar o borrar el archivo.
- Ejecución (x): Permite "ejecutar" el archivo (especialmente importante para scripts en PHP).
Ahora, estos permisos se asignan a tres tipos de "personas":
- Usuario (u): El dueño del archivo (normalmente tu cuenta de hosting).
- Grupo (g): Un grupo de usuarios (a menudo el servidor web).
- Público (o): Cualquier otra persona en internet.
Cuando hablamos de chmod (change mode), nos referimos a la orden que le damos al servidor para cambiar estas llaves. Se representan con números (como 644, 755, etc.) que son la suma de los valores de lectura (4), escritura (2) y ejecución (1).
- 4 = Lectura
- 2 = Escritura
- 1 = Ejecución
Por ejemplo, el número 7 (4+2+1) significa que tienes todos los permisos. El 5 (4+1) significa lectura y ejecución. El 6 (4+2) significa lectura y escritura.
El objetivo de la seguridad archivos es dar el mínimo permiso necesario para que tu web funcione, evitando que un atacante pueda modificarla si encuentra una vulnerabilidad.
La Regla de Oro: Los Permisos Recomendados
Existe un consenso general sobre los permisos más seguros para la mayoría de los CMS (WordPress y PrestaShop). Esta es tu tabla de referencia rápida:
-
Carpetas (Directorios):
755o750- Esto permite que el usuario (tú) tenga control total (7), y que el grupo y el público solo puedan leer y ejecutar (5). Es decir, pueden ver y usar los archivos, pero no modificarlos.
-
Archivos (como .php, .html):
644o640- Esto permite que el usuario (tú) pueda leer y escribir (6), y que el grupo y el público solo puedan leer (4). Se puede modificar, pero no ejecutar como script por otros.
-
Archivo
wp-config.php(en WordPress):600o640- Este es el archivo más sensible de WordPress, contiene tus claves de base de datos. Debe ser de solo lectura para el servidor. Con
600, solo el usuario (tú) puede leerlo y escribirlo.
- Este es el archivo más sensible de WordPress, contiene tus claves de base de datos. Debe ser de solo lectura para el servidor. Con
[WARNING] NUNCA utilices permisos
777en ningún archivo o carpeta de tu sitio. Esto significa que cualquiera en internet puede leer, escribir y ejecutar. Es una invitación abierta a que te hackeen.
Cómo Cambiar los Permisos (chmod) Paso a Paso
Tienes dos formas principales de hacerlo: desde el panel de control de tu hosting o usando un cliente FTP (como FileZilla). Te explico ambas.
Método 1: Desde el Panel de Control (La vía más fácil)
La mayoría de los paneles de control (cPanel, Plesk, o nuestro querido Syspanel) tienen un administrador de archivos. Syspanel es fácil de reconocer, ya que el puerto de acceso es el 2106.
- Accede a tu panel de control (por ejemplo,
https://tu-dominio.com:2106para Syspanel). - Busca la herramienta "Administrador de Archivos" o "Gestor de Archivos".
- Navega hasta la carpeta raíz de tu web (normalmente
public_html). - Selecciona el archivo o carpeta que quieres modificar.
- Haz clic derecho o busca el botón "Permisos" o "Chmod".
- Se abrirá una ventana donde puedes introducir el valor numérico (ej. 644) o marcar las casillas.
- Guarda los cambios.
Método 2: Usando un Cliente FTP (FileZilla)
Si prefieres usar FTP, es igual de sencillo.
- Conecta tu cliente FTP a tu servidor (necesitas tu usuario y contraseña FTP).
- Navega hasta la carpeta de tu web.
- Haz clic derecho sobre el archivo o carpeta.
- Selecciona "Permisos de archivo..." (File permissions).
- Introduce el valor numérico en el campo "Valor numérico" (ej. 644).
- Si es una carpeta, puedes marcar "Recurse into subdirectories" para aplicar el cambio a todas las subcarpetas (ten cuidado con esto).
- Acepta y listo.
Configuración Segura de Permisos Archivos WordPress
WordPress tiene una estructura de archivos específica. No necesitas cambiar todos los archivos uno por uno, pero sí las carpetas principales. Aquí tienes una guía práctica:
1. La Raíz (Carpeta Principal)
La carpeta raíz de WordPress (donde están los archivos wp-config.php, index.php, etc.) debe tener permisos 755.
2. Archivos Base
Todos los archivos en la raíz deben ser 644. Especialmente el archivo wp-config.php, que como dijimos, debe ser 600 para máxima seguridad. Si tu servidor tiene problemas, puede que necesites 640, pero intenta primero con 600.
[INFO] Si al poner
wp-config.phpen600tu web da un error, es porque tu servidor ejecuta PHP con un usuario diferente al dueño del archivo. En ese caso, prueba con644o640.
3. La Carpeta wp-content
Esta carpeta es la más importante de personalizar. Contiene tus temas, plugins y subidas de imágenes.
- Carpeta
wp-content:755 - Carpeta
wp-content/themes:755 - Carpeta
wp-content/plugins:755 - Carpeta
wp-content/uploads:755(o incluso775si tienes problemas con la subida de archivos, pero intenta mantenerla en755).
Todos los archivos dentro de estas carpetas (archivos .php de temas y plugins, imágenes, etc.) deben ser 644.
[TIP] La carpeta
uploadses donde los usuarios pueden subir imágenes. A veces, por configuración del servidor, necesita permisos775para que el servidor web pueda escribir en ella. Si ves errores al subir imágenes, prueba con775, pero nunca más.
4. Archivos de Configuración .htaccess
El archivo .htaccess es un archivo de configuración muy poderoso. Debe tener permisos 644. Esto permite que el servidor lo lea, pero no que cualquiera pueda modificarlo.
Configuración Segura de Permisos PrestaShop
PrestaShop tiene una estructura un poco más compleja, pero el principio es el mismo. La seguridad aquí es crucial, sobre todo en las carpetas de configuración.
1. La Raíz y Archivos de Configuración
Al igual que WordPress, la raíz de PrestaShop debe ser 755. Los archivos en la raíz deben ser 644.
PrestaShop tiene una carpeta llamada config que contiene archivos muy sensibles (como settings.inc.php). Esta carpeta debe tener permisos 755 y los archivos dentro deben ser 644.
2. La Carpeta app y var
En versiones modernas de PrestaShop (1.7+), tienes las carpetas app y var. Estas son las más delicadas.
- Carpeta
app:755(los archivos dentro,644). - Carpeta
var:755. Esta carpeta se usa para cachés y logs. A veces necesita permisos775para que el servidor pueda escribir. Si ves errores de caché, intenta con775.
3. La Carpeta img, themes y modules
- Carpetas
img,themes,modules:755. - Todos los archivos dentro de ellas:
644.
[WARNING] En PrestaShop, hay un archivo llamado
config/settings.inc.php(en versiones antiguas) oapp/config/parameters.php(en versiones nuevas). Este archivo contiene las credenciales de tu base de datos. Asegúrate de que tenga permisos644(o600si tu servidor lo permite). Nunca lo dejes en777.
4. La Carpeta admin (Tu Panel de Control)
Tu carpeta de administración (que suele tener un nombre aleatorio como admin123xyz) también debe ser 755. Los archivos dentro, 644.
Cómo Proteger Carpetas Específicas con .htaccess
Además de los permisos, puedes añadir una capa extra de seguridad usando el archivo .htaccess para proteger carpetas sensibles.
Por ejemplo, para proteger la carpeta config de PrestaShop o la carpeta wp-includes de WordPress, puedes crear un archivo .htaccess dentro de esa carpeta con el siguiente contenido:
<Files "*.php">
Require all denied
</Files>
Esto le dice al servidor que deniegue el acceso a cualquier archivo PHP dentro de esa carpeta. Es una excelente práctica para carpetas que no deberían ser accesibles públicamente.
[TIP] Esta técnica es muy útil para carpetas como
wp-includesen WordPress, donde no deberías poder ejecutar archivos PHP directamente.
Errores Comunes y Cómo Solucionarlos
A veces, al cambiar los permisos, puedes romper algo. No te preocupes, es normal. Aquí tienes los errores más frecuentes:
-
Error 500 (Internal Server Error): Generalmente significa que has puesto permisos demasiado restrictivos en archivos PHP. Revisa que los archivos
.phptengan al menos644y las carpetas755. Si el error persiste, sube temporalmente a755en archivos y777en carpetas para diagnosticar, y luego vuelve a bajarlos. -
Error al subir imágenes: Si no puedes subir imágenes a WordPress o PrestaShop, es probable que la carpeta
uploads(WordPress) oimg(PrestaShop) no tenga permisos de escritura para el servidor. Intenta con775en esa carpeta específica. -
Error al instalar plugins/temas: Similar al anterior, la carpeta
wp-content/pluginsowp-content/themesnecesita permisos de escritura. Prueba con775temporalmente, instala lo que necesites y vuelve a poner755.
[WARNING] Nunca dejes los permisos en
775o777de forma permanente. Úsalos solo para solucionar un problema puntual y luego revierte a los valores seguros.
Preguntas Frecuentes (FAQ)
¿Con qué frecuencia debo revisar los permisos?
Es una buena práctica revisarlos después de cualquier actualización importante de tu CMS, tema o plugin. También si sospechas que tu web ha sido comprometida.
¿Qué hago si no tengo acceso al Administrador de Archivos?
Puedes usar un cliente FTP como FileZilla, que es gratuito y fácil de usar. Tu proveedor de hosting te dará los datos de conexión.
¿Los permisos 777 son siempre malos?
Sí, en un entorno de producción (tu web en vivo), los permisos 777 son un riesgo de seguridad enorme. Permiten que cualquiera pueda modificar tus archivos.
¿Puedo cambiar los permisos de todos los archivos a la vez?
Sí, pero con mucho cuidado. Si usas un cliente FTP, selecciona la carpeta raíz y elige "Recurse into subdirectories". Sin embargo, es mejor hacerlo por carpetas específicas para evitar errores.
¿Qué es el valor 750?
Es un valor intermedio. Significa que el usuario tiene control total (7), el grupo puede leer y ejecutar (5), y el público no tiene ningún acceso (0). Es más seguro que 755, pero puede causar problemas si tu servidor web no está en el mismo grupo que tu usuario.
Conclusión y Buenas Prácticas Finales
Configurar los permisos archivos WordPress y permisos PrestaShop es una de las tareas más importantes para la ciberseguridad de tu sitio. No es complicado, pero requiere atención al detalle.
Resumen de acciones clave:
- Carpetas: Usa
755como regla general. - Archivos: Usa
644como regla general. - Archivos de configuración: Usa
600o644parawp-config.phpyparameters.php. - Nunca uses
777. - Revisa los permisos después de cada mantenimiento.
Si sigues esta guía, tu web será mucho más resistente a los ataques. Si en algún momento te sientes perdido, recuerda que puedes acceder a tu panel de control (Syspanel en el puerto 2106) y usar su administrador de archivos para hacer los cambios de forma visual y segura.
Espero que esta guía te haya sido de gran ayuda. Si tienes más dudas, aquí estoy para ayudarte. ¡A mantener tus proyectos seguros!
