設置 Bugzilla collectstats.pl cron 作業的正確方法?
要在 Bugzilla 中啟用錯誤圖,您需要
collectstats.pl
作為每晚的 cron 作業執行。該手冊有一個關於設置的部分- 添加一個 cron 作業5 0 * * * cd <your-bugzilla-directory> ; ./collectstats.pl
但是它沒有說明以哪個使用者身份執行它。出於偏執,我們以 apache 使用者而不是 root 身份執行它,因為這就是 Bugzilla 本身有效執行的方式。然而,對於一些版本,現在 Bugzilla 會
checksetup.pl
在執行時去除對 data/ 下文件的寫入權限,甚至是$webservicegroup
在 localconfig 中設置為我們的 apache 組的權限。然後,collectstats 作業嘗試以 apache 使用者身份寫入 data/mining/ 並失敗,因為它的權限已被刪除。這意味著每次我們修改 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 使用使用者提供的輸入執行,所以感覺不對。
謝謝。在Google上找不到任何明顯的東西。在 CVS 檢出的 CentOS 5.4、httpd 2.2.3、Bugzilla 3.4.x 和 3.6.x 上執行,以防萬一。
我在他們的郵件列表中收到了來自 bugzilla 的 Max Kanat-Alexander 的回复:
$$ run it $$作為根將是最好的。
我不確定我是否真的出於上述安全原因購買它——它正在處理使用者提供的數據。
我從列表中刪除的另一個想法是不以 root 身份執行 checksetup.pl,這樣它就不能取消/chgrp 權限。我可能會繼續這樣做或堅持我的舊工作流程(以 root 身份檢查設置,然後執行我的修復權限腳本)。
跟進:MKA 也回復了第二個想法:
但是,這將導致不安全的權限,其中 Web 伺服器能夠寫入它不應該具有寫入能力的東西。
您還可以創建一個“bugzilla”使用者,使該“bugzilla”使用者成為 Apache 組的成員,並以“bugzilla”使用者身份執行 checksetup.pl 和 collectstats.pl。這會導致在為其他事情設置權限時更加複雜(例如,jobqueue.pl 也必須作為“bugzilla”執行,email_in.pl 必須作為“bugzilla”執行,等等)但如果你是認真的擔心以 root 身份執行的安全性,這是另一種選擇(並且比以 apache 身份執行 checksetup.pl 好得多)。