Você pode usar o sudo para executar um comando como qualquer usuário: group com estas opções:
sudo -u www-data -g www-data /etc/init.d/thin start
-u define o usuário www-data e -g configura o grupo www-data
Eu corro um Ubuntu 10.04 VPS que hospeda 2 processos finos rodando Ruby On Rails atrás do Nginx. Eu controlo os processos Thin através de um script de inicialização /etc/init.d como um usuário comum. No meu arquivo de configuração fino eu especifico:
user: www-data
group: www-data
E nos meus logs Thin, quando eu inicio o servidor, vejo
>> Changing process privilege to www-data:www-data
Bom sinal. O problema é quando eu executo ps -ef
meus processos Finos estão sendo executados como o usuário que eu efetuo login - o usuário eu executo /etc/init.d/thin start
as.
Como posso começar os processos Thin iniciados como www-data: www-data quando executo /etc/init.d/thin start
como o usuário que eu logar no servidor como?
Você tentou fazer uma:
sudo -c www-data /etc/init.d/thin start
Mas se o seu servidor Thin estiver escutando a porta 80, você precisará dos privilégios de root.
Se você for um usuário comum, não poderá mudar a propriedade do processo para outro usuário. Você precisará executar o script /etc/init.d/thin como root para fazer isso.
Então, você pode fazer algo como sudo /etc/init.d/thin start
.