git - git 通过 https 推送到远程服务器时出错 fatal error 无法切换到 :permission denied

标签 git centos7 git-push git-remote git-post-receive

我有一个问题好几天都无法解决,它让我苦恼于可能出现的问题。

我已经在 Centos 7 机器上设置了 git 服务器。我还通过 https 设置了 git。 一切工作正常。我创建了后接收钩子(Hook)来检查路径/到/repo,但是当我尝试推送到远程服务器(Centos)时,我收到以下错误。

remote: fatal: Could not switch to 'path/to/repo' : Permission denied.

我已经尝试了所有更改权限的方法,所有者将 0777 给了存储库以及路径/到/存储库文件和文件夹,但没有成功。

有趣的是,我在我的机器上使用 git 服务器设置了一个虚拟机,以便在投入生产之前先对其进行测试,并且在更改权限后工作正常,没有任何问题。

但是当我以与我相同的方式设置生产时

remote: fatal: could not switch to /path/to/repo: Permissions Denied 

使用 root 用户和测试用户进行测试,并具有 0777 的权限,看看它是否可以更改所有者组(test、root、apache),但没有成功。我什至重新启动了服务器。

就像权限没有改变

有人知道可能是什么问题吗?

谢谢。

最佳答案

解决了。

尝试一切后发现问题出在/home/user 目录的权限上。通过更改它的工作方式,只有 root 拥有对主目录的权限。只需将其他人的 +x 添加到用户的主目录中即可 repo 协议(protocol)正在 push (0701)它有效。

关于git - git 通过 https 推送到远程服务器时出错 fatal error 无法切换到 :permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37481044/

相关文章:

git - "not something we can merge"是怎么产生的?

git - 克隆失败无法访问 "https://....."连接github失败:443 no error

git push 'pushing'不是新分支

java - 在 CentOS7 上配置 mod_jk 与 Tomcat 8 和 Apache 2.4 通信

git - 在 git 中推送特定提交

git - git有没有办法推送reflog?

git - 在本地时区以 YYYY-MM-DD 格式检索 git 日志

GitHub 显示两次已重命名的目录

linux - 如何将 systemd 服务的输出重定向到文件

仅在需要升级时停止服务的 Ansible 方法