我正在安装Jenkins以将对Github回购所做的更改推送到" live"我的服务器上的repo。 我在我的Ubuntu服务器上安装了Jenkins并使用其Web界面我安装了Github,Git和Github API插件。我还在Jenkins中创建了一个构建任务,当Github检测到对其repo进行了推送时,它运行了一些shell命令。
命令正在运行,但我似乎遇到了权限问题。我在Jenkins控制台中收到以下错误:
+ git pull origin master
error: cannot open .git/FETCH_HEAD: Permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE
网站(及其所有子目录)的父目录由用户拥有" james"谁属于一个团体" sudo"。詹金斯有自己的用户" jenkins"自那以后我加入了小组" sudo"。作为" jenkins"和" james"是" sudo"成员和小组有权写,我不确定为什么会出现这个错误?
答案 0 :(得分:1)
Adding a user to the group sudo
不会使该用户成员与保护.git
文件夹的用户成员相同。
它只允许将jenkins
或james
添加到sudoers
,并执行命令(在所述sudoers
中指定)为root
。
您需要检查哪个组正在保护.git
,或者如果它是root
组,请修改jenkins
脚本以便sudo git pull origin master
。
OP James Howell确认in the comments:
我最终将目录的群组所有者更改为"
jenkins
"其中jenkins
用户已经是其成员。