Descrição do erro
Ao tentar iniciar o serviço Nginx, o sistema exibe o seguinte erro:
[emerg] getpwnam("nginx") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
nginx.service: Control process exited, code=exited, status=1/FAILURE
Esse erro significa que o Nginx está configurado para rodar sob o usuário nginx
, mas esse usuário não existe no sistema.
Soluções
Você pode corrigir o problema de duas formas:
Opção 1: Criar o usuário nginx
Se deseja manter o Nginx rodando com o usuário padrão nginx
, execute o comando abaixo para criá-lo:
sudo useradd --system --no-create-home --shell /sbin/nologin nginx
Após isso, reinicie o serviço:
sudo systemctl restart nginx
Opção 2: Alterar o usuário no arquivo de configuração
Caso prefira utilizar um usuário já existente, como www-data
ou nobody
, edite o arquivo de configuração do Nginx:
sudo nano /etc/nginx/nginx.conf
Altere a linha:
user nginx;
Para:
user www-data;
Ou:
user nobody;
Depois, teste a configuração:
sudo nginx -t
Se estiver tudo certo, reinicie o serviço:
sudo systemctl restart nginx
Dica
Você pode verificar os usuários disponíveis com:
cut -d: -f1 /etc/passwd
E garantir que o usuário escolhido tem permissão de acesso aos arquivos e diretórios usados pelo Nginx.
Conclusão
Esse erro é comum em instalações manuais ou sistemas minimalistas onde o usuário nginx
não é criado automaticamente. Corrigi-lo é simples e pode ser feito de forma segura, criando o usuário ou ajustando a configuração para um usuário existente.