Maneira correta de configurar o trabalho cron do bugzilla collectstats.pl?

3

Para ativar os gráficos de erros no Bugzilla, você precisa executar collectstats.pl como um cron-job noturno. O manual tem uma seção sobre como configurar isso - adicionar um cron job

5 0 * * * cd <your-bugzilla-directory> ; ./collectstats.pl

No entanto, ele não diz para qual usuário executá-lo. Para ser paranóico, nós executamos isso como o usuário do apache não root, já que é isso que o próprio Bugzilla executa efetivamente. No entanto, para algumas versões agora, o checksetup.pl do Bugzilla remove as permissões de gravação dos arquivos sob data / quando executados, até mesmo as permissões para o grupo apache que está configurado como $webservicegroup no localconfig. O job collectstats então tenta gravar em data / mining / como o usuário do apache e falha porque suas permissões foram removidas.

Isso significa que toda vez que modificamos o Bugzilla e executamos o checksetup, precisamos restaurar o grupo do apache e gravar as permissões no diretório de dados, por exemplo

cd data
chgrp -R apache *
chmod -R g+w bugzilla-update.xml mailer.testfile mining/ template/ webdot/ \
             duplicates/

Então o que estamos fazendo de errado? Será que deveríamos estar executando o cron job do collectstats como root? Eu acho que eu executo o checksetup como root, então eu confio que não seja malicioso, mas o collectstats é executado com entrada fornecida pelo usuário para que não pareça certo.

Obrigado. Não foi possível encontrar nada óbvio no Google. Rodando em CentOS 5.4, httpd 2.2.3, Bugzilla 3.4.xe 3.6.x de checkouts CVS no caso que importa.

    
por Rup 17.09.2010 / 10:42

1 resposta

3

Eu obtive uma resposta de Max Kanat-Alexander do bugzilla lista de discussão:

[run it] As root would be best.

Não tenho certeza se realmente compro isso por razões de segurança, como acima - está processando dados fornecidos pelo usuário.

Outra ideia que eu obtive fora da lista foi não executar o checksetup.pl como root, assim ele não poderia chown / chgrp permissions. Provavelmente irei com isso ou mantenho meu fluxo de trabalho antigo (checksetup como root, em seguida, execute meu script de permissões de correção).

Acompanhamento: MKA respondeu à segunda ideia também:

However, that would lead to insecure permissions where the web server has the ability to write to things that it should not have the ability to write to.

You could also create a "bugzilla" user, make that "bugzilla" user a member of the Apache group, and run both checksetup.pl and collectstats.pl as the "bugzilla" user. That leads to greater complications in setting up permissions for other things (for example, jobqueue.pl would then also have to run as "bugzilla", email_in.pl would have to run as "bugzilla", etc.) but if you are seriously concerned about the security of running as root, it's another option (and much better than running checksetup.pl as apache).

    
por 23.09.2010 / 13:18

Tags