linux脚本git pull错误:无法打开.git / FETCH_HEAD:权限被拒绝

时间:2013-05-06 16:48:49

标签: linux git bash

需要一点帮助来编写git pull。

我们有一个内部网服务器,我们正在尝试编写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中删除任何生产更改。

思想?

2 个答案:

答案 0 :(得分:1)

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

#!/bin/bash
su
whoami

除非您在运行时已经是root用户,否则它不会输出root

解决方案是使用su的{​​{1}}开关:

-c

答案 1 :(得分:0)

您可能需要让用户成为文件夹的所有者

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