Quiero asegurar un directorio de carga de archivos en mi servidor como se describe muy bien aquí, pero tengo un problema antes de poder seguir estas instrucciones. No sé a qué usuario se está ejecutando Apache.
He encontrado una sugerencia de que puede buscar en httpd.conf y habrá una línea de "Usuario", pero no existe esa línea en mi archivo httpd.conf, así que supongo que Apache se está ejecutando como el usuario predeterminado. Sin embargo, no puedo descubrir qué es eso.
Entonces, mi pregunta es (son):
- ¿Cómo puedo saber cuál es el usuario predeterminado?
- ¿Necesito cambiar el usuario predeterminado?
- Si la respuesta es sí y cambio el usuario predeterminado editando httpd.conf, ¿es probable que arruine algo?
¡Gracias!
apache-2.2
eikonomega
fuente
fuente
root
ywww-data
. ¿Cómo le das al grupo Apache "correcto" un permiso para acceder a algo?Respuestas:
ps aux | egrep '(apache|httpd)'
normalmente mostrará cómo se está ejecutando Apache.Por lo general, no es necesario cambiar el usuario predeterminado, "nadie" o "apache" suelen ser buenos usuarios. Mientras no sea "raíz";)
editar: comando más preciso para atrapar binarios apache también
fuente
apache
pero 1 deroot
también./usr/sbin/apache2 -k start
), el usuario de uno esroot
y los otros doswww-data
. ¿Debería Preocuparme?Puedes probar el siguiente comando:
fuente
Use
apachectl -S
, que mostrará algo del usuario y grupo de Apache, algo como esto:fuente
De acuerdo con ubuntuforums.org , en Ubuntu el usuario predeterminado para apache2 es
www-data
.Visto para ser verdad en Ubuntu 13.10 Saucy.
De Lars Noodén en el foro anterior.
Para las distribuciones basadas en Red Hat sería (generalmente su usuario que ejecuta httpd es
apache
):fuente
Sé que esta es una publicación antigua, pero aún aparece como sin respuesta, por lo que haré una sugerencia. Si no puede encontrar a qué usuario o grupo se está ejecutando Apache, quizás intente abrir el archivo httpd.conf. Debe haber una entrada para "Usuario" y "Grupo". No solo puede ver a qué usuario se supone que se está ejecutando Apache, sino que puede cambiarlo si siente la necesidad de hacerlo.
fuente
Puede incluir una línea de código en su script PHP:
fuente
Este código enumerará, más o menos, alfabéticamente todos los usuarios no root que ejecutan procesos que contienen
apache
(o cuyo nombre contieneapache
)fuente
ps aux | grep apache
mientras se está ejecutando.NOTA: Esta es la misma respuesta que di en Stackoverflow .
fuente
O puede consultar el archivo de configuración de apache y buscar el propietario y el grupo.
fuente
Como lo sugiere Noyo aquí :
Y entonces:
fuente
Un enfoque alternativo, al menos para las distribuciones basadas en Debian / Ubuntu, es utilizar el mismo método que hace Apache para configurar su usuario y grupo:
/etc/apache2/envvars
¡ fuente !Si quieres ponerte elegante, puedes suprimir los errores si no se encuentra el archivo y proporcionar un valor predeterminado:
fuente
Descubrí que la mayoría de las soluciones que se ofrecen aquí son específicas del sistema o la configuración (en particular, la mayoría de las soluciones no funcionan en absoluto en MacOS) y algunas confían en que el usuario sepa dónde están los archivos de configuración de Apache en primer lugar. .
Así que hago un poco de trampa y dejo que Apache me diga qué es qué.
El simple comando
apachectl -S
le dirá lo que necesita saber sobre una instancia en ejecución de Apache, y sus resultados se pueden analizar con bastante facilidad. Aquí está mi solución, que uso en la parte superior de algunosbash
scripts para determinar una variedad de cosas que podría necesitar en un momento dado ...Estos valores se pueden usar como tales:
fuente
Encontré este comando en los documentos de CakePHP .
Ahora
HTTPDUSER
contiene el nombre de usuario del usuario que ejecuta el servidor,echo $HTTPDUSER
en mi caso, las salidaswww-data
–utilizando rlerdorf / php7dev .fuente
Use lsof y pase el puerto apache se escucha como argumento. Consulte la columna USUARIO para ver si el dispositivo de usuario se está ejecutando como.
fuente