2016-03-04 48 views
1

我正在安装Jenkins,以将对Github repo所做的更改推送到服务器上的“实时”回购。 我在我的Ubuntu服务器上安装了Jenkins并使用其Web界面我已经安装了Github,Git和Github API插件。我还在Jenkins中创建了一个构建任务,当Github检测到对其回购进行了推送时,该任务运行一些shell命令。Jenkins CI和Github的Unix文件权限问题

这些命令正在运行,但我似乎遇到权限问题。我得到的詹金斯控制台以下错误:

+ git pull origin master 
error: cannot open .git/FETCH_HEAD: Permission denied 

Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

的网站(及其所有子目录)的父目录是谁属于一组“命令”用户“詹姆斯”拥有。詹金斯有自己的用户“詹金斯”,自从我加入“sudo”团队之后,他就成为了詹金斯。由于“jenkins”和“james”都是“sudo”成员,并且该组有权写入,所以我不确定为何会出现此错误?

回答

1

Adding a user to the group sudo不会使该用户成员与保护.git文件夹的用户成员保持同一组。

它只是允许jenkinsjames要被添加到所述sudoers,和(所述sudoers中指定)作为root执行命令。

你需要检查,该基团保护.git,或者如果它是root组,修改jenkins脚本以sudo git pull origin master

OP James Howell的确认in the comments

我最终改变到“jenkins”。其中,jenkins用户已经是一个构件的目录的组所有者。

+0

感谢您的回复冯。我最终将目录的组所有者更改为jenkins用户已经是其成员的“jenkins”。 –

+0

听起来不错。它工作吗? – VonC

+0

是啊所有的工作现在谢谢 –