我们在 Ubuntu 12.04 上运行了 hudson + php + phing 设置
我们有一组要保护的凭据文件。这些文件位于 /usr/lib/vocanic-credentials/ 中。这里的所有文件都可以通过 www-data 或 hudson 访问(我们已经配置了组访问凭据)。
使用此设置,当我以 hudson 身份登录并从 bash 运行 phing 命令时,一切正常。当通过 hudson 构建过程运行相同的程序时(通过转到 Web 界面上的“立即构建”),它会失败并说 Permission Denied。
[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
当我们更改权限以允许“全部”访问时,从 hudson Web 界面运行也可以。因此,我们认为 hudson 的实际执行必须与其他用户一样(尽管没有公开文件表明这一点),我们从代码中打印了 whoami,它似乎表示“hudson”。
即使像 hudson 那样访问文件(不能访问所有文件)似乎也可以工作,就像从 bash - 一样sudo -u hudson cat /usr/lib/vocanic-credentials/hudson_dev_vocanic_mantle_build.php
。
目前,我们不知道如何解决这个问题。任何帮助将不胜感激。