Cuando configuras un sitio WordPress en un servidor Linux, es crucial asegurarse de que los permisos de archivos y directorios estén configurados correctamente para asegurar tanto la funcionalidad como la seguridad del sitio. Aquí tienes una explicación detallada de cómo deben configurarse estos permisos:
Permisos Básicos de Archivos y Directorios
- Directorios (carpetas)
- Permisos recomendados:
755
orwxr-xr-x
- El propietario tiene permisos de lectura, escritura y ejecución.
- El grupo y otros usuarios tienen permisos de lectura y ejecución.
- Archivos
- Permisos recomendados:
644
orw-r--r--
- El propietario tiene permisos de lectura y escritura.
- El grupo y otros usuarios tienen permisos de solo lectura.
Permisos Específicos para WordPress
- Directorio Raíz de WordPress
- Permisos:
755
- Comando:
chmod 755 /ruta/a/tu/wordpress
- Archivos de Configuración Importantes
wp-config.php
(Archivo de configuración principal de WordPress)- Permisos:
640
(más seguro) o644
(en algunos casos) - Comando:
chmod 640 /ruta/a/tu/wordpress/wp-config.php
- Permisos:
- Carpeta
wp-content
- Permisos:
755
- Comando:
chmod 755 /ruta/a/tu/wordpress/wp-content
- Subcarpetas de
wp-content
:uploads
,themes
,plugins
deben tener permisos755
para que WordPress pueda escribir en estas carpetas.- Comando:
chmod 755 /ruta/a/tu/wordpress/wp-content/uploads
- Archivos dentro de
wp-content
- Permisos:
644
- Comando:
find /ruta/a/tu/wordpress/wp-content/ -type f -exec chmod 644 {} \;
Permisos de Propietario y Grupo
- Propietario del sitio WordPress debe ser el usuario que ejecuta el servidor web (por ejemplo,
www-data
en muchos sistemas Linux con Apache). - Cambiar propietario:
chown -R www-data:www-data /ruta/a/tu/wordpress
Configuraciones Adicionales
- Scripts
- Si tienes scripts que necesitan permisos de ejecución, puedes otorgarles
750
. - Comando:
chmod 750 /ruta/a/tu/wordpress/scripts/nombre-del-script.sh
- Archivos Temporales y de Caché
- Algunos plugins pueden requerir que ciertas carpetas tengan permisos de escritura (por ejemplo,
wp-content/cache
). - Asegúrate de que estas carpetas tengan permisos
755
.
Consideraciones de Seguridad
- Deshabilitar la Ejecución en
uploads
- Para aumentar la seguridad, puedes deshabilitar la ejecución de scripts PHP en la carpeta
uploads
agregando un archivo.htaccess
con el siguiente contenido:apache <Files *.php> deny from all </Files>
- Crea el archivo:
nano /ruta/a/tu/wordpress/wp-content/uploads/.htaccess
- Pega el contenido y guarda.
- Deshabilitar Navegación de Directorios
- Para evitar que los usuarios puedan ver la lista de archivos en tus directorios, añade esta línea a tu archivo
.htaccess
en el directorio raíz de WordPress:apache Options -Indexes
Comandos Resumen
Para aplicar todos estos ajustes, aquí tienes un conjunto de comandos que puedes usar (asegúrate de reemplazar /ruta/a/tu/wordpress
con la ruta real de tu instalación de WordPress):
# Establecer permisos de directorios
find /ruta/a/tu/wordpress/ -type d -exec chmod 755 {} \;
# Establecer permisos de archivos
find /ruta/a/tu/wordpress/ -type f -exec chmod 644 {} \;
# Establecer permisos específicos para wp-config.php
chmod 640 /ruta/a/tu/wordpress/wp-config.php
# Cambiar propietario del sitio WordPress
chown -R www-data:www-data /ruta/a/tu/wordpress
# Crear archivo .htaccess para deshabilitar ejecución de scripts PHP en uploads
echo '<Files *.php>' > /ruta/a/tu/wordpress/wp-content/uploads/.htaccess
echo ' deny from all' >> /ruta/a/tu/wordpress/wp-content/uploads/.htaccess
echo '</Files>' >> /ruta/a/tu/wordpress/wp-content/uploads/.htaccess
# Deshabilitar navegación de directorios
echo 'Options -Indexes' >> /ruta/a/tu/wordpress/.htaccess
Configurar adecuadamente los permisos de archivos y directorios es fundamental para mantener la seguridad y funcionalidad de tu sitio WordPress en un servidor Linux. Con estos pasos, te asegurarás de que tu instalación esté bien protegida contra accesos no autorizados y vulnerabilidades.