Cuando ejecuto el ps -efH
comando para enumerar todo el proceso, puedo ver Apache ejecutándose como root
y parece tener subprocesos ejecutándose como www-data
. Aquí está el extracto:
root 30117 1 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30119 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30120 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 30121 30117 0 09:10 ? 00:00:00 /usr/sbin/apache2 -k start
¿Puedo hacer que Apache y todos los subprocesos se ejecuten como usuarios diferentes apache2d:apache2d
? ¿Si es así, cómo? Leí en alguna parte que la configuración para esto se puede encontrar /etc/apache2/httpd.conf
pero ese archivo parece estar vacío. ¿Se puede lograr esto cambiando el propietario y el grupo del /etc/init.d/apache2
script y luego configurando el indicador setuid en él?
fuente
@bahamat lo explica bastante bien, pero agregaré un poco más de detalle.
En el curso de la operación normal, el proceso de apache propiedad de la raíz no realizará ninguna operación real que no sea escuchar en el puerto 80 y reenviar las conexiones entrantes a sus
www-data
hijos (sin privilegios, como el usuario).La ubicación del archivo de configuración maestro depende de las opciones de tiempo de compilación y varía según la distribución, pero
/etc/apache2/apache2.conf
es una buena suposición inicial.Además, si está configurando un sistema de alojamiento web multiusuario, es posible que desee examinar SuExec y fcgid para que el proceso de apache de cada usuario de alojamiento web individual se ejecute como dicho usuario, de modo que si un usuario es negligente con su seguridad, otro Los usuarios no se verán afectados.
fuente
Al menos en Ubuntu, la configuración para esto está en
/etc/apache2/envvars
. Ajústelos, luego reinicie apache y estará listo para funcionar.fuente
Además, consulte Apache2 ITK MPM .
Bifurca un hilo de Apache con el
uid
/ asignadogid
, esto le permite seguir usandomod_php
. No máschmod
/chown
etc.fuente
mpm_itk
cual es una mejora significativa sobre suexec / fcgidMac OS X:
Lo que funcionó para mí es ir al archivo de configuración de apache:
En este archivo he buscado Usuario o Grupo
y tropecé con:
Lo cambié a cualquier usuario / grupo que necesitaba (en mi caso, al usuario / grupo que es el propietario de los archivos de mi aplicación web que puede ver. Y esto puede verificarlo usando el simple 'ls -l' mando)
fuente