por que o processo nginx é executado com o usuário nobody

16

Eu estava tentando configurar o nginx para rodar com um dos meus aplicativos de trilhos, ao dar uma olhada na saída para ps -e | grep nginx , percebi que os processos de trabalho do nginx eram executados com o usuário nobody.

Existe uma razão pela qual eles não estão sendo executados como www-data?

    
por mu 無 28.08.2013 / 15:54

2 respostas

25

Is there a reason why they are not running as www-data ?

Sim. Você provavelmente não especificou o usuário em sua configuração nginx .

Diretiva do usuário: link

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

Como executar o nginx como um usuário em particular?

Você pode especificar o usuário / grupo que o nginx executa, na configuração nginx.

Este é um exemplo de como uma configuração do nginx pode parecer (observe a diretiva do usuário):

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
}

Simplesmente atualize sua configuração e recarregue ou reinicie o nginx, e você deve estar pronto.

É claro que você deve escolher o usuário que funciona melhor para o seu sistema, no Debian / Ubuntu há um www-data por padrão, então essa é uma escolha sensata.

    
por 28.08.2013 / 16:38
4

O processo mestre é executado como raiz, em seguida, nginx setuid() / setgid() to USER / GROUP . Se GROUP não for especificado, o nginx usará o mesmo nome que USER .

Por padrão, é nobody user e nobody ou nogroup ou --user=USER e --group=GROUP do script ./configure .

Você pode editar o nginx.conf e set user to www www;

    
por 28.08.2013 / 16:03