ubuntu erro de permissão upstart ao gravar para fazer logon em um usuário não administrador

4

Eu tenho um script iniciante simples:

start on started network-services

respawn
respawn limit 100 5

setuid www-data

exec node /var/testapp/app.js >> /var/log/testapp.log 2>&1

post-start exec echo "Server was (re)started on $(date)" | mail -s "Crashing Server (re)starting" [email protected]

mas, como estou executando o aplicativo do nó como 'www-data', não tenho permissões de gravação em testapp.log .

Qual é a melhor abordagem para resolver isso?

Eu preferiria não criar previamente o arquivo de log com 'www-data' como proprietário, porque gostaria de fazer o menor número de etapas possível para a configuração. Eu também prefiro não executar o aplicativo como 'www-data' com o sudo:

exec sudo -u www-data node /var/testapp/app.js >> /var/log/testapp.log 2>&1

porque quando eu faço isso, o root também está executando o processo. Talvez eu esteja errado, mas vejo isso como um problema de segurança. Se não é um problema de segurança - por favor, me ilumine.

    
por gilmad 12.09.2013 / 15:35

1 resposta

3

Você pode simplesmente criar outro diretório no diretório log e dar a propriedade www-data:

sudo mkdir /var/log/testapp
sudo chown www-data:www-data /var/log/testapp

/var/log/testapp agora pode ser escrito por www-data, então no script iniciante você teria:

exec node /var/testapp/app.js >> /var/log/testapp/app.log 2>&1
    
por 07.05.2014 / 10:42