Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux脚本git pull错误:无法打开。git/FETCH\u头:权限被拒绝_Linux_Git_Bash - Fatal编程技术网

linux脚本git pull错误:无法打开。git/FETCH\u头:权限被拒绝

linux脚本git pull错误:无法打开。git/FETCH\u头:权限被拒绝,linux,git,bash,Linux,Git,Bash,需要一些帮助来编写git拉动脚本 我们有一个内部网服务器,我们正试图编写一个git拉入脚本,我遇到了一个权限问题 error: cannot open .git/FETCH_HEAD: Permission denied 我们已经在服务器上设置了一个用户帐户,将项目克隆到该帐户,chmod 775-R目录树,并设置了ssh密钥,因此没有密码提示 脚本看起来是这样的: #! /bin/bash sudo /bin/su - gitrepouser cd /some/directory/for/g

需要一些帮助来编写git拉动脚本

我们有一个内部网服务器,我们正试图编写一个git拉入脚本,我遇到了一个权限问题

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中提取任何生产更改


想法?

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

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

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

#!/bin/bash
su
whoami
除非运行它时您已经是root用户,否则它不会输出
root

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

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

我尝试了这个,并且必须等待我们的管理员给我运行命令的权限。