Me estoy preparando para implementar un sitio de Drupal 7 y no puedo encontrar ninguna documentación sobre lo que los permisos de directorio y archivo de seguridad recomendados deberían estar configurados.
Específicamente default/files/
(¿también subdirectorios?) settings.php
, .htaccess
Y cualquier otra cosa que debería tener en cuenta.
Respuestas:
Su servidor web debería poder leer todos los archivos pero no escribirles. Si su sitio implica cargar archivos, dé permiso al servidor para escribir solo en esa carpeta.
En los documentos de Drupal hay más información sobre cómo configurarlo, así como algunas cosas que pueden suceder si no lo hace .
fuente
Esa página drupal como tantas es muy larga y confusa. Pero contiene esta publicación de Jason, quien dio en el clavo:
fuente
Mi práctica en torno a la creación de un nuevo sitio Drupal en un servidor es tener un usuario que forme parte del grupo del servidor web (generalmente Apache), y que ese usuario sea el propietario de todos los archivos de Drupal. En Ubuntu, estos son los comandos para configurarlo:
Una vez que tenga eso configurado, iniciaré sesión como ese usuario e instalaré Drupal en / var / www / example / docroot o similar, y luego crearé el directorio de archivos a mano y copiaré el archivo settings.php. Dado que iniciamos sesión como nuestro usuario de ejemplo antes de copiar en Drupal, la propiedad y los permisos de nuestros archivos deben configurarse automáticamente en todos los archivos y scripts centrales de Drupal (incluidos los archivos .htaccess).
Ahora configuremos el directorio de archivos.
A continuación, configuraremos permisos para que el servidor web siempre pueda escribir en cualquier archivo que se encuentre en este directorio. Hacemos esto usando 2775 en nuestro comando chmod. El 2 significa que la identificación del grupo se conservará para cualquier archivo nuevo creado en este directorio. Lo que eso significa es que www - data siempre será el grupo en cualquier archivo, asegurando así que el servidor web y el usuario siempre tendrán permisos de escritura para cualquier archivo nuevo que se coloque en este directorio. Los primeros 7 significan que el propietario (ejemplo) puede R (Leer) W (Escribir) y X (Ejecutar) cualquier archivo aquí. El segundo 7 significa que el grupo (www-data) también puede RW y X cualquier archivo en este directorio. Finalmente, el 5 significa que otros usuarios pueden archivos R y X, pero no escribir.
Si hay archivos existentes en este directorio, asegúrese de que el servidor web tenga permisos de escritura.
Ahora Drupal está listo para ser instalado. Cuando termine, es MUY importante volver a settings.php y asegurarse de que todos los usuarios solo tengan permisos de lectura.
¡Eso es! Esta configuración garantiza que evite cualquier situación en la que el usuario propietario del directorio o el servidor web no pueda escribir / cambiar / eliminar archivos en el directorio de archivos.
fuente
El servidor web debe poder escribir la carpeta de archivos de Drupal. La forma más segura de hacerlo es cambiar el grupo y hacer que el grupo se pueda escribir, así:
Dejando a un lado la carpeta de carga de archivos, la más segura es chmod 644 para todos los archivos, 755 para directorios.
Esto podría lograrse así (cuando se ejecuta en la carpeta del sitio Drupal,
.
es para la ruta actual):Recuerde que deberá configurar
chmod g+w
nuevamente después de ejecutar el comando anterior, ya que estos restablecerán el chmod en todos los archivos y carpetas.fuente
chgrp -R www-data sites/*/files
ychmod -R g+w sites/*/files
me deshago de los errores de la página de estado.Cualquier consejo para "chmod blah" o "chown X" no tiene sentido sin saber: cuál es el grupo de usuario predeterminado: en los archivos y qué usuario y grupos ejecuta su servidor web.
Los documentos de Drupal con los que otros se han vinculado son bastante buenos en el tema, pero otro recurso es el Módulo de revisión de seguridad que ayuda a garantizar que tenga todo configurado correctamente.
fuente
Contestaré considerando el caso en que los archivos se crean en el servidor usando FTP, usando credenciales diferentes de las que se ejecutan en el servidor web (normalmente, Apache se ejecuta como nobody / nobody). Esto significa que el usuario que posee los archivos creados manualmente antes de ejecutar el instalador de Drupal (que incluye también los archivos cargados en el servidor desde el archivo de Drupal) no es el usuario utilizado para ejecutar el servidor web (ni el nombre de usuario ni el grupo coinciden) . Este escenario se aplica también al caso en que esos archivos se crean utilizando SSH.
default/files
directorio) debe ser (para el usuario asignado a los procesos del servidor web, que es el usuario asignado a los scripts PHP que se ejecutan en ese servidor web):default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>
)fuente
Permisos recomendados de archivo / directorio:
Propiedad recomendada de archivo / directorio:
Estas son las variables que controlan los permisos predeterminados de directorio / archivo para nuevos elementos:
Aquí hay algunas secuencias de comandos para corregir permisos: fix-permissions.sh
Lee mas:
Aquí está la secuencia de comandos que estoy usando para corregir los permisos en el host remoto para directorios públicos / privados:
Nota: el código anterior intentará recuperar el grupo Apache y establecerlo en
GET_HTTP_GROUP
variable.fuente
Este script de shell se encuentra al final de esta página: https://www.drupal.org/node/244924
Lo ejecuto ocasionalmente para asegurarme de que mis permisos estén configurados correctamente.
fuente
Además, si está ejecutando fastcgi, el php se ejecuta como el usuario, y tendrá acceso a todos los archivos a los que el usuario tiene acceso a menos que intente evitarlo deliberadamente.
fuente
Esto me ayudó con mis problemas de permisos OSX. Lo encontré en https://www.drupal.org/node/244924#comment-3741738 por el usuario de protoplasma. Era como si tuviera problemas después de una migración.
fuente
Hay un módulo llamado Revisión de seguridad que verifica si su sitio es seguro o no. También encontré un muy buen enlace para configurar los permisos del sitio.
fuente