¿Por qué el proceso nginx se ejecuta con el usuario nobody?

16

Estaba tratando de configurar nginx para que se ejecute con una de mis aplicaciones de rieles, cuando ps -e | grep nginxeché un vistazo a la salida , me di cuenta de que los procesos de trabajo de nginx se ejecutan con el usuario nobody.

¿Hay alguna razón por la que no se ejecutan como www-data?

mu 無
fuente
1
Parece una pregunta razonable que condujo a una respuesta informativa: ¿por qué se cuestionó el interrogador?
No es un parche

Respuestas:

25

¿Hay alguna razón por la que no se ejecutan como www-data?

Si. Lo más probable es que no haya especificado el usuario en su configuración nginx .

Directiva del usuario: http://nginx.org/en/docs/ngx_core_module.html#user

syntax: user user [group];
default:    
user nobody nobody;
context:    main

¿Cómo ejecutar nginx como un usuario en particular?

Puede especificar el usuario / grupo con el que se ejecuta nginx, en la configuración de nginx.

Este es un ejemplo de cómo se vería una configuración nginx (observe la directiva del usuario):

pid                 /path/to/nginx.pid;
user                www-data www-data;
worker_processes    1;

events {
   worker_connections  1024; # usually 1024 is a good default
}

http {
   # more code goes here
}

Simplemente actualice su configuración y luego vuelva a cargar o reinicie nginx y debería estar listo.

Por supuesto, debe elegir el usuario que funcione mejor para su sistema, en Debian / Ubuntu hay un www-data por defecto, por lo que es una opción sensata.

Drew Khoury
fuente
A mi entender, www-data es más bien el propietario / grupo de / var / www y no es una buena idea utilizar el mismo usuario para el proceso nginx ( stackoverflow.com/questions/22336186/… ) Una instalación nueva de nginx a través de apt en debian usa el usuario nginx. Tal vez desee cambiar el ejemplo para usar el usuario nginx.
binaryanomaly
4

El proceso maestro se ejecuta como root, luego nginx will setuid()/ setgid()to USER/ GROUP. Si GROUPno se especifica, entonces nginx usa el mismo nombre que USER.

Por defecto es nobodyusuario y / nobodyo nogroup group o --user=USERy --group=GROUPdel ./configurescript.

Puede editar nginx.conf y set user to www www;

ankso
fuente