要在Bugzilla中启用错误图表,您需要运行collectstats.pl作为每晚的cron-job。 该手册有一个设置这个部分 – 添加一个cron作业
5 0 * * * cd <your-bugzilla-directory> ; ./collectstats.pl
然而,它并没有说哪个用户来运行它。 为了成为偏执狂,我们运行这个作为apache用户而不是root,因为这是Bugzilla本身有效运行的。 但是现在有几个版本,Bugzilla的checksetup.pl了数据/运行时写入文件的权限,甚至是在localconfig中设置为我们的$webservicegroup的apache组的权限。 collectstats作业然后尝试写入数据/采矿/作为apache用户,并失败,因为它的权限被删除。
这意味着每次我们修改Bugzilla并运行checksetup,我们都必须恢复Apache组,并在数据目录中写入权限,例如
cd data chgrp -R apache * chmod -R g+w bugzilla-update.xml mailer.testfile mining/ template/ webdot/ \ duplicates/
那么我们做错了什么? 我们真的希望以root身份运行collectstats cron作业吗? 我想我以root身份运行checksetup,所以我相信这不是恶意的,但collectstats运行用户提供的input,所以不觉得正确。
谢谢。 在Google上找不到任何明显的内容。 运行在CentOS 5.4上,httpd 2.2.3,Bugzilla 3.4.x和3.6.x从CVS签出,以防万一。
我在邮件列表中收到了bugzilla的Max Kanat-Alexander的回复 :
[运行]作为根是最好的。
我不确定是否出于安全原因购买了上述产品 – 正在处理用户提供的数据。
我得到的另一个想法是不以root身份运行checksetup.pl,所以它不能chown / chgrp权限。 我可能会去那个或坚持我的旧工作stream程(检查作为超级用户然后运行我的修复权限脚本)。
跟进:MKA也回答了第二个想法:
但是,如果Web服务器能够写入不应写入的内容,则会导致不安全的权限。
您也可以创build一个“bugzilla”用户,使“bugzilla”用户成为Apache组的成员,并运行checksetup.pl和collectstats.pl作为“bugzilla”用户。 这会导致设置其他事情的权限更大的复杂性(例如,jobqueue.pl然后也必须运行为“bugzilla”,email_in.pl将不得不运行为“bugzilla”等),但如果你认真关心作为根运行的安全性,这是另一种select(并且比运行checksetup.pl作为Apache更好)。