在VPS上,我可以使用登录
ssh admin@server.com
我在中创建了一个裸存储库
/var/repo/site.git
具有:
drwxr-xr-x 7 root root 119 Jan 31 13:35 site.git
我在本地设置:
git远程添加生产ssh://admin@server.com/../../var/repo/site.git
但是当我尝试推送时,我得到了这个错误:
PS D:pathsite-directory> git push production master
admin@server.com's password:
Enumerating objects: 1152, done.
Counting objects: 100% (1152/1152), done.
Delta compression using up to 8 threads
Compressing objects: 100% (1073/1073), done.
remote: fatal: Unable to create temporary file '/var/repo/site.git/./objects/pack/tmp_pack_XXXXXX': Permission denied
fatal: sha1 file '<stdout>' write error: Broken pipe
error: remote unpack failed: index-pack abnormal exit
To ssh://server.com/../../var/repo/site.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'ssh://server.com/../../var/repo/site.git'
我认为我必须调整一些权限,否则我可能设置了错误的路径。
有人能帮我解决故障吗?
此目录:
drwxr-xr-x 7 root root 119 Jan 31 13:35 site.git
将用户所有权设置为root。由于admin不是该目录的所有者,Linux接下来会检查该目录是否是可全局写入的,而事实并非如此,因此它拒绝访问。
解决这个问题最简单的方法是让admin成为这个目录的所有者。
运行以下命令:
sudo chown -R admin:admin /var/repo/site.git