Esta sección describe la configuración e instalación de la herramienta suEXEC
con el script "src/Configure
".
(Si utiliza Apache 1.3, puede usar el interfaz AutoConf, APACI, que se describe
en el documento principal de suEXEC).
EDITAR EL FICHERO DE CABECERA DE suEXEC
- Desde lo más alto de la estructura de directorios de las fuentes de Apache escriba
cd support [INTRO]
Edite el fichero suexec.h
y cambie los siguientes macros para adaptarlos a
su instalación local de Apache.
Desde support/suexec.h
/* * HTTPD_USER -- Se define el nombre del usuario sobre el que Apache corre. * Este es el único usuario al que se le permite ejecutar * este programa. */ #define HTTPD_USER "www" /* * UID_MIN -- Defínalo como el ID de usuario (UID) más bajo que se permite * para suEXEC. Para la mayoría de usuarios 500 o 100 son valores comunes. */ #define UID_MIN 100 /* * GID_MIN -- El valor de ID de grupo (GID) más bajo permitido para usarse con * suEXEC. En la mayoría de sistemas 100 es un valor muy común. */ #define GID_MIN 100 /* * USERDIR_SUFFIX -- Define el directorio bajo los directorios de usuarios al que se * permite acceso a suEXEC. Todos los ejecutables bajo * este directorio serán ejecutables por suEXEC como * el usuario, por lo que deberían ser programas * seguros. Si utiliza una única directiva UserDir * (por ejemplo, una sin un "*") éste debería * tener el mismo valor. suEXEC no funcionará bien * en casos en los que la directiva UserDir apunte * a un sitio que no sea el mismo que el directorio * del usuario (home directory), tal como se especifica * en el fichero passwd. * * Si usted tiene VirtualHosts con diferentes UserDir * para cada uno, necesitará definirlos para que todos * residan en el directorio padre y entonces renombrar * el directorio padre. SI NO DEFINE ESTO ADECUADAMENTE, * LAS PETICIONES ~USERDIR NO FUNCIONARAN. * Consulte el manual de suEXEC para información más * detallada. */ #define USERDIR_SUFFIX "public_html" /* * LOG_EXEC -- Defínalo como un nombre de fichero si quiere que todas las * transacciones y errores sean registrados para propósitos * de auditoría y depuración. */ #define LOG_EXEC "/usr/local/apache/logs/cgi.log" /* * DOC_ROOT -- Define el DocumentRoot para Apache. Esta será la única * jerarquía (además de UserDirs) para implantar * suEXEC. */ #define DOC_ROOT "/usr/local/apache/htdocs" /* * SAFE_PATH -- Define un PATH (ruta) seguro para pasar a ejecutables CGI. * */ #define SAFE_PATH "/usr/local/bin:/usr/bin:/bin"
COMPILACIÓN DEL ENVOLTORIO (WRAPPER) DE suEXEC
Necesita compilar ahora el envoltorio suEXEC. Después de compilar Apache, en la
línea de comandos del shell escriba:
make suexec[ENTER]
.
Esto creará el ejecutable del envoltorio (wrapper) suexec.
COMPILACIÓN DE APACHE PARA SU USO CON suEXEC
Por defecto Apache se compila para buscar el envoltorio suEXEC en el siguiente
sitio.
En src/include/httpd.h
/* El camino a suEXEC puede ser sobrescrito en Configuration */ #ifndef suEXEC_BIN #define suEXEC_BIN HTTPD_ROOT "/sbin/suexec" #endif
Si su instalación requiere que el envoltorio esté situado en un directorio diferente ,
añada -DsuEXEC_BIN=\"</su/camino/a/suexec>\"
a CFLAGS (o edite src/include/httpd.h) y recompile Apache. Lea
Compilación e instalación de Apache
(y el fichero INSTALL en la distribución fuente) para obtener
más información sobre este proceso.
COPIA DEL BINARIO suEXEC AL SITIO ADECUADO
Copie el ejecutable suexec creado anteriormente al
lugar indicado en suEXEC_BIN.
cp suexec /usr/local/apache/sbin/suexec [ENTER]
Para que el envoltorio pueda especificar el ID de usuario, debe instalarse como usuario root y debe tener el bit de ejecución activo. Si no está ejecutando un shell como root, hágalo ahora ejecutando los siguientes comandos:
chown root /usr/local/apache/sbin/suexec [ENTER]
chmod 4711 /usr/local/apache/sbin/suexec [ENTER]
Después de que haya instalado correctamente el envoltorio suexec,
debe parar y volver a arrancar el servidor Apache. Con un simple
kill -1 `cat httpd.pid`
no será suficiente.
Durante el arranque del servidor web, si apache encuentra un envoltorio
suexec correctamente configurado, mostrará el siguiente mensaje en
la consola (Apache 1.2):
Configuring Apache for use with suexec wrapper.Si la versión de Apache es la 1.3 se imprimirá el siguiente mensaje en el log de errores:
[notice] suEXEC mechanism enabled (wrapper: /camino/a/suexec)
Si no ve este mensaje durante el arranque del servidor, lo más probable es que el servidor no encuentra el envoltorio donde esperaba que estuviera o bien que el ejecutable no fue instalado con setuid a root. Revise su instalación e inténtelo de nuevo.