在“su user”之后,使用“git Push”获取“致命:无法统计:权限被拒绝”

在“su user”之后,使用“git Push”获取“致命:无法统计:权限被拒绝”

有很多设置对于这个问题:

我有一个主机 ( rpi5.local),有 2 个用户帐户:picake

我想探索git,并且创建了cake帐户来“拥有”“服务器/起源”存储库。作为用户cake/home/cake我创建了一个文件夹 ( git-srv),其中有一个名为 的子文件夹projectA。我经历了使用初始化此存储库的过程git init --bare

最初,我projectA从另一台主机( )“填充”了服务器上的存储库rpi4b.local。我使用以下序列通过 SSH将主机上push调用的文件夹中的一些文件编辑到存储库:Aprojectraspberrypi4b.localprojectA

$ hostname
rpi4b.local
$ pwd
/home/pi/Aproject
$ git push -u ssh://[email protected]/home/cake/git-srv/projectA.git

这很好用。

作为用户pi,我cloneprojectA存储库保存到/home/pi/XYZ.我commit对 中的一个文件进行了一些更改/home/pi/XYZ,并尝试push对服务器进行这些更改,如下所示:

$ hostname
rpi5.local
$ pwd
/home/pi/XYZ
$ git push -u /home/cake/git-srv/projectA.git

我从这次努力中得到了一个错误:

...
error: remote unpack failed: unable to create temporary object directory
To /home/cake/git-srv/projectA.git
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '/home/cake/projectA.git'

经过对这个错误的一些研究后,我得出结论这是一个权限pi和之间的问题cake。我想通了解决方案是su cake作为用户pi,所以我这样做了,然后push再次尝试。最后,我的问题是:

$ whoami
cake
$ hostname
rpi5.local
$ pwd
/home/pi/XYZ
$ git push -u /home/cake/git-srv/projectA.git
fatal: failed to stat '/home/pi/motd.git': Permission denied

在这种情况下意味着什么failed to stat?是否有一个简单的方法解决方法

答案1

“无法统计”意味着调用stat返回一个错误,IE运行的用户git没有权限获取/home/pi/motd.git.这可能是因为cake用户无权访问/home/pi.

在这种情况下,我认为最直接的方法是再次使用 SSH(即使是同一个系统),而不是尝试找到正确的权限集:git push ssh://git@localhost:/home/cake/git-srv/projectA.gitgit push ssh://cake@localhost:git-srv/projectA.git

相关内容