2013-05-06 81 views
0

需要一点帮助脚本来编写git pull。linux scripted git pull错误:无法打开.git/FETCH_HEAD:权限被拒绝

我们有一个Intranet服务器,我们正在尝试编写一个git pull脚本,并且我遇到了许可问题。

error: cannot open .git/FETCH_HEAD: Permission denied 

我们已经安装在服务器上的用户帐户,克隆了一个项目到该帐户,搭配chmod 775 -R目录树,并设置SSH密钥,所以没有密码提示。

脚本看起来像这样:

#! /bin/bash 
sudo /bin/su - gitrepouser 
cd /some/directory/for/git && git pull 

当我运行该脚本作为另一个用户,它运行sudo命令,停止,键入exit后,我得到的错误信息。

该脚本将在10分钟的时间间隔内由我们的批处理过程调用,从BitBucket下拉任何生产变更。

想法?

回答

0

你可能需要使用户的文件夹的所有者

chown gitrepouser -Rf /some/directory/for/git 
1

的问题是,su开始自己的壳;第二个命令不在该shell中执行,而是在原始命令中执行。您可以通过运行下面的脚本证明这一点:

#!/bin/bash 
su 
whoami 

除非你当你运行它已经是root,也不会输出root

的解决方案是使用su-c开关:

sudo /bin/su -c "cd /some/directory/for/git && git pull" - gitrepouser 
+0

我想这一点,并有等待我们的管理员给我的权限运行该命令。 – idonaldson 2013-05-06 17:23:21

相关问题