如何在执行git push时修复.git /目录的权限被拒绝?

xyl*_*lar 15 linux git file-permissions chmod chown

我在我的服务器上设置了一个git存储库.创建了一个新用户'git'.我的回购位于/srv/git/example.git.我能够git remote add origin git@domain/srv/git/example.git然后添加并提交我的更改.

但是,当我尝试git push origin master失败时:

致命:无法创建临时文件:权限被拒绝'和'致命:sha1文件写入错误:无效参数'

在我运行的服务器上:

sudo chown -R git:git /srv/git/`
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题,但我想知道这是否是正确的做法?

小智 20

在服务器上我运行了sudo chown -R git:git/srv/git/ - 这解决了我的问题,但我想知道这是否是正确的做法?

绝对.之前的问题是,您通过SSH登录的git用户无法写入存储库.

根据您的需要,您可以考虑用户和SSH密钥的不同组合,或者可以用于更精细地控制访问的许多其他程序(gitolite等)之一.


ken*_*orb 9

首先,修复远程.git目录中的文件权限,例如

sudo chmod -R ug+w /var/www/.git
sudo chown -R git:git /var/www/.git
Run Code Online (Sandbox Code Playgroud)

或者root:root如果要分配root组成员以进行推送访问.

然后需要将目标主机上的git存储库设置为共享,因此需要运行以下远程命令:

git config core.sharedRepository group
Run Code Online (Sandbox Code Playgroud)