Los permisos de ficheros son siempre elemento de discordia en cuanto a funcionamiento, seguridad y todo lo que hay alrededor de WordPress. Pero ¿cuáles son los permisos que WordPress necesita para funcionar?
La respuesta, como suele ser habitual, es «depende». Y ¿de qué depende? De tu hosting y de cómo se gestionan sus usuarios.
Pero antes, vamos a ver ligeramente qué significan los distintos permisos. En este caso sólo vamos a ver los permisos en Linux, aunque en Windows funcionan de forma similar.
Qué significan los números de los permisos
Por resumir, cuando subimos nuestro WordPress al servidor tenemos 2 tipos: archivos y carpetas. Un archivo es un contenedor de contenido (texto, imagen, etc…) y una carpeta es un lugar donde agrupar archivos.
Tanto unos como otros han de tener ciertos permisos, que son 3: lectura, escritura y ejecución.
Y por otro lado, tenemos números de 3 cifras. La primera hace referencia al propietario del archivo, el segundo al grupo al que pertenece ese usuario y el tercero al resto de usuarios.
Con esta mezcla, por norma general tendremos 2 tipos de numeración.
Permisos para carpetas
En el caso de las carpetas, para poder acceder a ellas, necesitamos que sean de «ejecución». La diferencia pues, estará en si son de sólo lectura o lectura y escritura.
- Escritura:
W
(Write) - Lectura:
R
(Read) - Ejecución:
X
(eXecute)
De esta forma, las carpetas, en un principio, podrían ser así:
Propietario | Grupo | Otros |
---|---|---|
WXR | WXR | W-R |
Como en un hosting puede entrar el propietario u otros usuarios del mismo grupo (otros desarrolladores) dejaríamos permisos para que ellos también puedan hacer lo mismo que el propietario. Sí que está claro que si algún otro usuario intenta hacer algo, podría ejecutar y mirar una carpeta, pero no modificarla.
Permisos para archivos
En el caso de los archivos, no necesitamos que sean de ejecución en ningún momento, ya que no vamos a ejecutar ningún programa. En este caso los ficheros serán sólo de lectura y escritura según sea necesario.
- Escritura:
W
(Write) - Lectura:
R
(Read) - Ejecución:
X
(eXecute)
De esta forma, los archivos, en un principio, podrían ser así:
Propietario | Grupo | Otros |
---|---|---|
W-R | W-R | --R |
Como en un hosting puede entrar el propietario u otros usuarios del mismo grupo (otros desarrolladores) dejaríamos permisos para que ellos también puedan hacer lo mismo que el propietario. Sí que está claro que si algún otro usuario intenta hacer algo, podría ejecutar y mirar una carpeta, pero no modificarla.
Los números
Lo más habitual es que veamos códigos del tipo 644, o 775. ¿Qué significan estos números? Esta es la combinación de los WXR
en numeración.
Símbolos | Numeración | Explicación |
---|---|---|
--- | 0 | No hay permisos de ningún tipo. |
--x | 1 | Hay permisos de ejecución. |
-w- | 2 | Hay permisos de escritura. |
-wx | 3 | Hay permisos de escritura y ejecución. |
r-- | 4 | Hay permisos de lectura. |
r-x | 5 | Hay permisos de lectura y ejecución. |
rw- | 6 | Hay permisos de lectura y escritura. |
rwx | 7 | Todos los permisos. |
Permisos en un hosting compartido
Cuando estamos en un hosting compartido, lo habitual es que el sistema pueda tener varios usuarios de FTP, y que todos ellos compartan el mismo grupo. De esa forma, hay un usuario que es el propietario, y hay otros que son los que están en el mismo grupo. En este caso, tendríamos que el propietario y el grupo han de tener siempre los mismos permisos, y el resto, los mínimos necesarios para funcionar.
Si lo hacemos así, los permisos para todos los ficheros de un WordPress serían:
- Carpetas:
rwxrwxr-x
/775
Con esto se podrá entrar en las carpetas y leer sus contenidos. Los que tengan usuario podrán escribir en ellas. - Archivos:
rw-rw-r--
/664
En este caso siempre se podrá leer el contenido de los archivos. Los que tengan usuario, podrán escribir en ellos.
En el caso de WordPress, todos los ficheros deberían tener estos permisos. En ningún caso hay que darle permisos de ejecución a un archivo, y tampoco tiene sentido darle permisos de escritura al resto de usuarios.
Si alguien te recomienda poner a las carpetas 777 o 666, ten cuidado, porque es probable que el problema no sea de permisos, sino de algo que está mal en alguna otra configuración.
Permisos en un VPS / dedicado
Cuando hablamos de un hosting dedicado, un VPS o de un sistema en el que el control del sistema se tiene por parte de un administrador de sistemas, la cosa cambia. En estos casos se puede ser extremadamente restrictivos, ya que depende mucho de quién es el propietario de los archivos y carpetas.
En estos casos, podemos reducir la casuística sobre todo con respecto a seguridad. En la mayoría de casos, los servicios que hay en el servidor (por ejemplo el Apache o nginx) se pueden encontrar en el mismo grupo de los usuarios, y si este es el caso «no hay más usuarios».
Con esto tendríamos como 3 niveles: tú / webmaster (propietario), el propio WordPress (grupo) y otros usuarios.
Si lo hacemos así, los permisos para todos los ficheros de un WordPress serían:
- Carpetas:
rwxr-x---
/750
Con esto se podrá entrar en las carpetas y leer sus contenidos. Los usuarios podrán escribir en ellas. Otros usuarios no tendrían acceso. - Archivos:
rw-r-----
/640
En este caso siempre se podrá leer el contenido de los archivos. Los usuarios podrán escribir en ellos. Otros usuarios no tendrían acceso.
Este sería el caso extremo, que en general tampoco es necesario. lo más habitual será ser más liviano con los permisos y dejar una configuración más laxa.
- Carpetas:
rwxr-xr-x
/755
- Archivos:
rw-r--r--
/644
Por tu seguridad
En cualquiera de los casos, como habrás podido comprobar, nunca se da permisos de escritura al último de los 3 bloques, y sólo se da permisos de ejecución a las carpetas, nunca a los archivos.
Sobre este documento
Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.