[equinux] Drupal: no hay derechos para escribir en /files
Marco Donoso
ratadeagua en ratadeagua.com
Lun Mayo 29 11:08:53 EDT 2006
Hola, Samuel
Desde el Core 2 de Fedora, RedHat entrega un sistema de control granular de
accesos llamado SE Linux (Security Enhanced Linux):
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/
http://www.nsa.gov/selinux/
El sistema de seguridad de SELinux implementa un grado adicional de protección
sobre los permisos clásicos del UNIX, es decir, que todo lo que han hablado
de permisos debe cumplirse, en particular para el caso del servidor web, el
usuario o el grupo apache deben tener permiso de escritura en los directorios
donde Drupal va a escbirir datos. Lo más adecuado (a mi criterio) es
establecer:
Usuario apache, grupo apache y permisos 700
o
Usuario root, grupo apache y permisos 770
Adicionalmente, lo que hace SELinux es (entre otras cosas) impedir que las
aplicaciones accedan a ciertos directorios a menos que lo hayas definido
explícitamente, o sea, si el servidor web no tiene permisos de acceso a nivel
de SELinux, no podrá mostrar o escribir la información contenida en un
directorio.
Si por ejemplo, en el archivo /etc/httpd/conf/httpd.conf tienes la directiva:
DocumentRoot /www/sistemas
Debes definir clases de acceso SELinux para el usuario apache a ese
directorio.
La configuración de SELinux no es muy complicada, pero para quien no tiene
mucha experiencia con Linux, puede ser algo muy confuso, inicialmente. Te
puedo dar dos recomendaciones:
1. Si la desesperación es grande, deshabilita (provisionalmente) la protección
de SE Linux para el servidor web:
system-config-securitylevel
SELinux
Personalizar configuración SELinux
Deshabilitar protección SELinux para el servidor httpd
Reinicia el servidor linux
2. Si el servidor, a nivel de sistema operativo, va a ser administrado por una
sola persona, coloca los archivos del servidor web en el
directorio /var/www/html y define la directiva:
DocumentRoot /var/www/html
La configuración de SELinux que viene por defecto con RedHat permite acceso al
usuario apache a ese directorio.
Y en todo caso, NUNCA hagas un chmod 777 a ningún archivo o directorio de un
sistema Linux.
Marco
--
Marco Donoso
ratadeagua en ratadeagua.com - ratadeagua en gmail.com
Telf. 09 7665396 - 02 2231526
Quito, Ecuador
Am Donnerstag, 25. Mai 2006 18:16 schrieben Sie:
> Hola Marco,
>
> Si! Gracias :-)
>
> Marco Donoso escribió:
> > - Qué distribución de Linux usas?
>
> Centos 4.3
>
> > - Qué versión de apache usas?
>
> No se. Me imagino la que viene con Centos?
>
> > - Estás utilizando SE Linux?
>
> SE? Que es?
>
> > - Cuál es el directorio raíz de tu servidor web?
>
> ServerRoot "/etc/httpd"
>
> > En el archivo de configuración de apache, mira la directiva
> > DocumentRoot
>
> DocumentRoot "/www/sistemas"
>
> > - Estás usando directorios virtuales?
>
> Si
>
> > - Cuál es el usuario y grupo que maneja el servidor web?
>
> apache
>
> > En el archivo de configuración de apache, mira la directiva User y
> > Group
>
> User apache
> Group apache
>
>
> Ciao
> Samuel
>
> --- andinasoft SA - Software y Consulting ---
> Mariano Aguilera 216 y Almagro - Quito, Ecuador
> Tel. +593 2 223 5682 ----- Cel. +593 9 946 4046
> --------- http://www.andinasoft.com ---------
Más información sobre la lista de distribución equinux