需要一点帮助来编写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中删除任何生产更改。
思想?
答案 0 :(得分:1)
问题是su
启动了自己的shell;第二个命令不在该shell中执行,而是在原始shell中执行。您可以通过运行以下脚本来证明这一点:
#!/bin/bash
su
whoami
除非您在运行时已经是root用户,否则它不会输出root
。
解决方案是使用su
的{{1}}开关:
-c
答案 1 :(得分:0)
您可能需要让用户成为文件夹的所有者
chown gitrepouser -Rf /some/directory/for/git