Saltar al contenido

Cómo configurar los permisos de WordPress [CHMOD]

28 diciembre, 2022

¿Cómo configurar los permisos CHMOD de WordPress? Esta es una pregunta frecuente de varios webmasters que, de hecho, se encuentran periódicamente con este problema cuando gestionan sus sitios web. La importancia de un ajuste correcto en este ámbito se debe a una cuestión de normalización del lugar y de reducción de posibles problemas en el futuro.

Por lo tanto, los permisos de WordPress deben estar correctamente configurados, no tanto por una cuestión de forma, sino porque si no lo hacemos, corremos el riesgo de comprometer el funcionamiento del sitio y que no rinda al máximo. A continuación veremos en detalle cómo hacerlo y de qué se trata.

Qué es CHMOD

El comando CHMOD ha sido introducido en el mundo del software libre de Linux desde los días de las primeras distribuciones con licencia GNU. Aunque su uso requiere generalmente el uso del shell de terminal de comandos y/o SSH, está integrado en las versiones más recientes de clientes FTP como Mozilla FTP. Así, está disponible tanto en la versión gráfica del programa como en forma de comando para ser lanzado literalmente, y se utiliza esencialmente para establecer permisos de lectura, ejecución y escritura para varios grupos, según la lógica de Linux.

El comando CHMOD viene con varios parámetros, pero lo más frecuente es utilizar una simple combinación de tres dígitos (lea aquí para más detalles sobre las posibles combinaciones).

Permisos de WordPress (en breve)

Los permisos se utilizan para determinar lo que un usuario Linux/Unix que accede al sitio puede hacer, en términos de ejecución de scripts, lectura y escritura. Por eso es importante configurar bien el CHMOD: de hecho, evitaremos que potenciales ciberataques puedan ser ejecutados, del mismo modo que evitaremos que la gente navegue libremente por los directorios de nuestro sitio en busca de posibles resquicios.

Iré directo al grano: en la mayoría de los sitios WP, debes configurar los permisos de la siguiente manera

1- CHMOD 644 para todos los ficheros

2- iCHMOD 775 para todos los directorios

En algunos servicios de alojamiento, sin embargo, las cosas pueden cambiar ligeramente, y – también para mejorar la seguridad del sitio – es aconsejable

establecer un CHMOD 644 para todos los archivos de WP (excepto uno, el wp-config.php)

establecer un CHMOD 755 para todos los directorios WP

Establecer un CHMOD 600 para el wp-config.php (es un vector de ataque muy común, y esto se hace para evitar que el malware y scripts maliciosos pongan sus manos en él o lo modifiquen sin su conocimiento).

La configuración de los permisos CHMOD se realiza de dos formas:

mediante consola de comandos o terminal SSH;

mediante acceso FTP a las carpetas y archivos de su sitio.

Cómo CHMOD a través de FTP (archivos y directorios)

Acceda a su sitio con FileZilla, por ejemplo, introduzca sus credenciales de inicio de sesión (ver aquí para más detalles), entrar en la raíz del sitio (si no está ya allí), ahora primero seleccione sólo los archivos, uno por uno, directorios excluidos. Haga clic con el botón derecho en la selección y seleccione «Permitir archivos» en el menú desplegable (véase la imagen).

A continuación se muestra cómo establecer los permisos para todos los archivos, después de seleccionarlos: esto equivale a un CHMOD 644, como puede verse por el valor numérico indicado.

Una vez terminada la operación, que suele durar unos minutos dependiendo del tamaño y número de archivos del sitio, debe hacer lo mismo seleccionando sólo los directorios wp-content, wp-admin y wp-include, hacer clic con el botón derecho del ratón, hacer clic con el botón izquierdo del ratón sobre los permisos de los archivos como de costumbre y, a continuación, hacer lo mismo con los directorios:

CHMOD y la pantalla blanca de la muerte de WP

Si ha experimentado la clásica «pantalla blanca» de la muerte y ya no puede acceder o ver su sitio, es posible que el problema esté relacionado con los permisos de WordPress, que puede intentar configurar como se indica más arriba. Otros «síntomas» típicos de un problema de permisos en el sitio son los siguientes

1-no puede eliminar archivos o directorios no deseados, vacíos o inútiles;

2-no puedes actualizar el blog;

3-errores del lado del servidor como 403 o 500;

4-no actualizar un tema de WordPress;

5-no subir imágenes a la sección Media;

6-no se pueden añadir imágenes a los mensajes;

7-como usuario de WP no es posible añadir mensajes, ponerlos en revisión o 8-9-editarlos, cuando deberíamos tener los derechos para hacerlo;

10-errores específicos como, en algunos casos, violación de la política suexec: 11-consulte el registro suexec para obtener más detalles

12-las actualizaciones automáticas no funcionan.

Veamos ahora cómo proceder para comprobar y corregir el funcionamiento de WordPress: son cosas que también puede hacer usted mismo paso a paso, comprobando cada vez si algo cambia o si, como mínimo, se detecta el problema.

¿Para qué sirve restablecer los permisos de WordPress?

Restablecer los permisos no siempre resolverá todos los problemas, pero sin duda es algo que hay que comprobar y corregir, si es necesario, en prácticamente todos los casos críticos. En algunas circunstancias, el mal funcionamiento de WordPress puede depender de otros factores, como plugins defectuosos, temas defectuosos o infectados por malware, problemas en el núcleo del sitio, problemas de alojamiento, etc.

Nota para el mantenimiento: cómo regenerar las claves únicas de autenticación y salting.

Abra el archivo wp-config.php desde FTP y reemplace este fragmento de código:

define(‘AUTH_KEY’,         ‘k=ll*~p[hi…’); define(‘SECURE_AUTH_KEY’,  ‘d.%#D|-5!Y…’); define(‘LOGGED_IN_KEY’,    ‘vt&v*a=sU5…’); define(‘NONCE_KEY’,        ‘N6fAr+Z#xd…’); define(‘AUTH_SALT’,        ‘oP|=-NUi(8…’); define(‘SECURE_AUTH_SALT’, ‘_&sD1?Ic%N…’); define(‘LOGGED_IN_SALT’,   ‘e#sF4m)^k:…’); define(‘NONCE_SALT’,       ‘S}JptD7J8:…’);

con la generada dinámicamente por esta página https://api.wordpress.org/secret-key/1.1/salt/. Esto servirá para invalidar todas las cookies antiguas, expulsar del sistema a los usuarios que hayan iniciado sesión y permitirle comprobar que el sitio funciona realmente para todos los visitantes.

Nota: CHMOD en alojamiento compartido Aruba

Nota – algunos proveedores de alojamiento como Aruba parecen requerir necesariamente CHMOD 755 tanto para archivos como para directorios para evitar el error 500 en el servidor (fuente).

Precauciones generales para CHMOD

En general, cualquier configuración CHMOD válida NUNCA debería terminar con un 7 final (porque implicaría permisos de escritura por parte del público, y eso va mal en cualquier sitio web), y para el resto deberías consultar la documentación oficial del CMS. Algunos hosts de baja calidad también tienden a establecer este tipo de configuración de forma incorrecta, probablemente debido a la inexperiencia del administrador del sistema o, en ocasiones, porque existen scripts maliciosos que pueden establecer los permisos de forma incorrecta o, de nuevo, debido a un exceso de celo al querer proteger el sistema.

Nunca configures CHMOD 777 a ningún nivel para «ir más rápido», porque corres el riesgo de poner en peligro la seguridad del sitio.

Para cambiar los permisos y comprobarlos, en la práctica, puedes hacerlo con tu cliente FTP como FileZilla o, si te sientes un temerario heroico, a través de SSH. En la práctica, seleccione los directorios uno por uno y establezca los permisos sólo para los archivos y sólo para los directorios, consecutivamente, como se muestra en las siguientes pantallas. Los muestro para wp-admin pero, en realidad, se aplican a wp-content y wp-include (así como a la raíz del sitio /) de forma equivalente.

Configuración alternativa: pruébela si las actualizaciones automáticas no funcionan

Si tiene problemas con las actualizaciones automáticas, es el mismo concepto a comprobar: la guía oficial sugiere siempre configurar (con un 0 delante, esta vez)

0644 para archivos;

0755 para directorios

que coincide en la práctica con lo que vimos al principio, si no fuera porque estamos poniendo explícitamente a 0 el valor del bit especial. Repita esta configuración con paciencia en todos los archivos y directorios de WP (después de haber cerrado la sesión de todos los usuarios, incluido usted como administrador) y, a continuación, compruebe que todo está bien echando un vistazo al sitio, tanto al frontend como al backend.

Ten en cuenta que algunos problemas no dependen de ti sino de cómo se ha configurado tu servidor, así que pide más aclaraciones a la empresa de hosting, intentando ser siempre muy, muy específico en la notificación del error (como, y escribo esto con la experiencia de quien ha trabajado durante años en contacto con las realidades del hosting italiano: no abras tickets con peticiones genéricas «el sitio no funciona», «me da error», etc. porque suelen ser ignorados, o recibir respuestas evasivas).

Cómo establecer permisos para WordPress a través de la terminal SSH

Si accede a los archivos de su sitio a través de SSH, el procedimiento debe realizarse directamente a través del terminal, es decir

1-inicie sesión en su servidor de la forma habitual (preferiblemente con acceso root), por ejemplo, ssh root@123.456.789.123;

2-introduzca la carpeta de archivos de su sitio web, por ejemplo cd /var/www/html (para las últimas versiones de Ubuntu); tenga cuidado de no ejecutar el comando directamente desde el usuario o la carpeta raíz de su sitio, ya que esto significaría algo completamente diferente;

3-una vez que esté en la carpeta correcta de WordPress, establezca permisos 755 en todos los directorios (como se sugirió anteriormente), utilizando:

encontrar . -type d -print -exec chmod 755 {} \;

establecer permisos 644 en todos los archivos (de nuevo, como se sugirió anteriormente para FTP), a través de

encontrar . -type f -print -exec chmod 644 {} \;

no es necesario reiniciar el servidor de ninguna manera, ¡así que ya está! Si tenías problemas para subir archivos a la carpeta multimedia (uploads), en este momento no deberías tener ninguno. Si no es así, y sigue habiendo problemas de permisos, puede ser que su servidor requiera un 775 en lugar de un 755 en los directorios, así que pruebe a ejecutar

encontrar . -type d -print -exec chmod 775 {} \;

Problemas con los permisos de carga de archivos (a través de SSH)

Si tiene problemas para subir archivos a la carpeta multimedia (por ejemplo, /wp-content/uploads), por ejemplo en una instalación de WordPress en un alojamiento dedicado, VPS u otro que ofrezca SSH, puede probar este procedimiento ligeramente diferente. En la práctica, aquí especificamos abiertamente que el propietario de los archivos debe pertenecer al grupo Apache, que es algo que WordPress espera y «da por hecho».

El mensaje de error típico en esta circunstancia es el siguiente:

El archivo subido no se puede mover a wp-content/uploads/…

Por lo tanto, en este caso, primero debe ir al directorio de medios wp-content/uploads (atención: /var/www/html/ está bien para Ubuntu, en otras distribuciones de Linux tendrá que comprobar en qué carpeta de Linux se cargan los archivos del sitio, y empezar desde allí¬);

cd /var/www/html/wp-content/uploads

entonces tienes que especificar con chown la asociación correcta con el grupo (esto también es un problema de permisos, a menudo no permite que los archivos se carguen en el directorio de medios, e incluso si no tiene que ver con chmod directamente):

chown www-data:www-data -R *

A continuación, vamos a dar los dos comandos de antes, para los 755 directorios:

encontrar . -type d -exec chmod 755 {} \;

y para 644 archivos en todos los archivos (find se utiliza para buscar en todos los directorios y archivos, respectivamente):


find . -type f -exec chmod 644 {} \;

Espero haberte podido ayudar.

Configuración