2013-08-20 146 views
4

訪問我們有一個哈德森+ PHP + phing安裝在Ubuntu 12.04文件哈德森用戶權限不哈德森構建

運行我們擁有了一套我們要安全證書文件。這些文件位於/ usr/lib/vocanic-credentials /中。這裏的所有文件都可以通過www-data或hudson訪問(我們配置了組訪問憑證)。

使用此設置,當我以hudson身份登錄並從bash運行phing命令時,一切正常。當通過hudson構建過程運行相同的過程時(通過轉到Web界面上的「立即構建」),它會通過聲明權限被拒絕而失敗。

[01;35m[PHP Error] include(.../hudson_dev_vocanic_mantle_build.php): 
failed to open stream: Permission denied [line 3 of /.../utils_config.inc.php][m 
[01;35m[PHP Error] include(): Failed opening 
'/usr/lib/vocanic-credentials/hudson_dev_vocanic_mantle_build.php' 
for inclusion (include_path='...') [line 3 of /.../utils_config.inc.php][m 

當我們更改權限以允許「全部」訪問時,從哈德森web界面運行也可以。因此,我們認爲哈德森的實際執行必須與其他用戶一樣(儘管沒有公開文檔),我們在代碼中打印了whoami,並且它似乎表示'哈德森'。

即使像哈德森那樣訪問文件(無法訪問所有文件)似乎也能正常工作,就像它從bash - sudo -u hudson cat /usr/lib/vocanic-credentials/hudson_dev_vocanic_mantle_build.php一樣。

目前,我們不知道如何解決這個問題。任何幫助將不勝感激。

回答

1

聽起來好像它可能是Hudson用戶的權限問題 - 在您將hudson用戶添加到組後,您是否重新啓動服務器?試着這樣做,我想這應該可以解決你的問題。

+0

讓我試着看看是否有幫助.. – Shreeni

+0

解決了這個問題。這也解釋了爲什麼直接以哈德森身份登錄並運行它,因爲那時候,我將被納入組中,但哈德森服務在添加到組之前運行,該服務沒有權限訪問該文件。 – Shreeni