Determinar usuário para programa compilado em C [RESOLVIDO]

1. Determinar usuário para programa compilado em C [RESOLVIDO]

Mauro Marssola
marssolinha

(usa Ubuntu)

Enviado em 26/07/2016 - 09:42h

Bom dia Pessoal,
Preciso rodar um programa com um usuário específico, como o Squid, que roda com o usuário proxy (Debian) / squid (RedHat), o Zabbix (server ou agent) com o usuário zabbix ou o Apache que roda com o usuário www-data (debian) / apache (RedHat).

Vi que eles funcionam sobre um usuário, e até agora não consegui entender como eles fazem isso, se é na compilação ou no serviço.
Olhando o Serviço que inicia o Daemon do Zabbix, vi que ele utiliza o comando start-stop-service (Debian) / daemon (RedHat), procurei como o programa funciona e fiz os testes, e mesmo assim ele não sobe com o usuário especificado.
Não adianta usar o su para isso, visto que ele vai pedir senha, mesmo que o usuário não tem senha. E nem com o runuser deu certo.

No Ports do FreeBSD, na compilação do Squid, é possível determinar um usuário e grupo na compilação. Não sei se existe um modo parecido no padrão GNU.
Consegui utilizar o Autotools para criar o configure e o Makefile, mas não achei nada que pudesse determinar um usuário.

Se alguém puder me ajudar, agradeço desde já.


  


2. Re: Determinar usuário para programa compilado em C [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/07/2016 - 17:14h

Com su funciona sem senha se você o executar já como root.

Alguns programas, como o Apache, por exemplo, iniciam a execução como root, e trocam de usuário depois de realizar as operações que requerem privilégios elevados (basicamente criar um socket em portas abaixo de 1024), usam uma chamada a setuid() para descender para um usuário menos privilegiado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts