Git推送错误:远程:错误:将对象添加到存储库数据库的权限不足。/objects

Git推送错误:远程:错误:将对象添加到存储库数据库的权限不足。/objects,git,apache,Git,Apache,我已经在Redhat上的apache下努力安装Git很多天了 Apache版本:服务器版本:Apache/2.4.6(Red Hat Enterprise (Linux) Git版本1.8.3.1 Red Hat Enterprise Linux Server 7.1测试版 apache下Git的配置: 和服务器上的Git配置文件,如下所示 将裸服务存储库/var/www/git/test1克隆为 git克隆 当我从客户机推送任何更改时,仍然会得到如下错误: 我在网上做了很多研究,也做了

我已经在Redhat上的apache下努力安装Git很多天了

  • Apache版本:服务器版本:Apache/2.4.6(Red Hat Enterprise (Linux)
  • Git版本1.8.3.1
  • Red Hat Enterprise Linux Server 7.1测试版
  • apache下Git的配置:
  • 和服务器上的Git配置文件,如下所示
将裸服务存储库/var/www/git/test1克隆为

git克隆

当我从客户机推送任何更改时,仍然会得到如下错误:

我在网上做了很多研究,也做了所有可能的尝试。
我真的不知道问题出在哪里。请帮助。

我建议您检查文件权限。

检查ssh密钥的文件权限,可以使用chmod进行更改。 你改变了对整个目录的权限,我同意Splash是个坏主意

如果您还记得目录的原始权限是什么,我将尝试将它们设置回该权限,然后执行以下操作

cd ~/.ssh
chmod 700 id_rsa

CHMOD权限:

#   Permission  rwx
7   read, write and execute rwx
6   read and write  rw-
5   read and execute    r-x
4   read only   r--
3   write and execute   -wx
2   write only  -w-
1   execute only    --x
0   none    ---
在哪里可以找到钥匙?

在.ssh文件夹旁边。这将仅为所有者(您)将id_rsa文件设置为rwx(读、写、执行),其他所有人都将无法访问


如果最重要的是没有帮助,试着看看你的团队。将用户添加到组并尝试将您的分支推送到远程源站/主站。

我建议您检查文件权限。

检查ssh密钥的文件权限,可以使用chmod进行更改。 你改变了对整个目录的权限,我同意Splash是个坏主意

如果您还记得目录的原始权限是什么,我将尝试将它们设置回该权限,然后执行以下操作

cd ~/.ssh
chmod 700 id_rsa

CHMOD权限:

#   Permission  rwx
7   read, write and execute rwx
6   read and write  rw-
5   read and execute    r-x
4   read only   r--
3   write and execute   -wx
2   write only  -w-
1   execute only    --x
0   none    ---
在哪里可以找到钥匙?

在.ssh文件夹旁边。这将仅为所有者(您)将id_rsa文件设置为rwx(读、写、执行),其他所有人都将无法访问


如果最重要的是没有帮助,试着看看你的团队。将用户添加到组中,并尝试将您的分支推到远程源站/主站点。

注意:我已经有10多年没有接触过Apache了,所以请根据需要添加尽可能多的盐。不过,有一个明显的问题:

不要那样做。你不应该这么做。而不是:

使用单行顺序:

git init --bare --shared=group
(或者只是
——共享的
,意思相同)


我不清楚您何时以及为什么想要将http.receivepack
配置为
true
,但请参见。

注意:我已经10多年没有接触过Apache了,所以请根据需要多加一些盐。不过,有一个明显的问题:

不要那样做。你不应该这么做。而不是:

使用单行顺序:

git init --bare --shared=group
(或者只是
——共享的
,意思相同)


我不清楚您何时以及为什么需要将http.receivepack
配置为
true
,但请参见。

是裸(空)回购协议吗?是裸(空)回购协议吗?我们只是使用不同的协议,即http。。这不是问题所在。我面对http的唯一问题是不可能签入大小为4gb的文件。我更喜欢使用ssh。嗯,值得一看。您已更改了文件的所有者和权限。谢谢,我正在使用smart http而不是ssh for git,不确定http是否与rsa有关。服务器上存储库的所有者“apache”和客户端“briangit”在同一个“apache”组中。请检查是否已将用户添加到该组,以便他/她可以将分支拉入或推送到远程?我的存储库为空。它应该不会有文件大小的问题。这与大小无关。这就是我对这个裸回购的评论,这就是为什么你会遇到这个问题。您只需要检查作为您的机器的客户端中ssh密钥的权限,并检查用户组。你试过上面提到的命令吗?你只是使用了不同的协议,那就是http。。这不是问题所在。我面对http的唯一问题是不可能签入大小为4gb的文件。我更喜欢使用ssh。嗯,值得一看。您已更改了文件的所有者和权限。谢谢,我正在使用smart http而不是ssh for git,不确定http是否与rsa有关。服务器上存储库的所有者“apache”和客户端“briangit”在同一个“apache”组中。请检查是否已将用户添加到该组,以便他/她可以将分支拉入或推送到远程?我的存储库为空。它应该不会有文件大小的问题。这与大小无关。这就是我对这个裸回购的评论,这就是为什么你会遇到这个问题。您只需要检查作为您的机器的客户端中ssh密钥的权限,并检查用户组。你试过上面提到的命令吗?多亏了Torek,SELinux才是这个错误的罪魁祸首。当它被禁用后,它可以正常工作。啊,SELinux。我自己从来没能让Git服务器在这种情况下工作。@briantalk如果你把它写在你的OP上会很有用,所以这个有用的信息不会隐藏在评论中。虽然对我来说,它并没有解决我的问题。多亏了Torek,结果证明SELinux是这个错误的罪魁祸首。当它被禁用后,它可以正常工作。啊,SELinux。我自己从来没能让Git服务器在这种情况下工作。@briantalk如果你把它写在你的OP上会很有用,所以这个有用的信息不会隐藏在评论中。虽然对我来说,这并没有解决我的问题。
chmod 777 ~/.ssh/id_rsa
#   Permission  rwx
7   read, write and execute rwx
6   read and write  rw-
5   read and execute    r-x
4   read only   r--
3   write and execute   -wx
2   write only  -w-
1   execute only    --x
0   none    ---
chmod -R 755 .
git init --bare
git config core.sharedRepository group
git init --bare --shared=group