将 git 个存储库移动到 nfs 导致权限错误

Moving git repositories to nfs causes permission errors

我是 运行 一个 redmine 服务器,带有 redmine-git-hosting 插件来控制 git 回购。存储库目录指向安装在 /srv/share 的单独硬盘驱动器。现在设置正在更改,我正在尝试将存储库移动到另一台服务器上的 nfs 共享。

安装工作正常,我只是将 fstab 文件中的条目从 /etc/sdb1 替换为 ip:/share。现在我事先遇到了一些权限问题,因为该驱动器同时被 redmine(用户 www-data)和 gitolite(用户 git)访问,所以我 运行 a chmod -R 777对整个驱动来处理这个。

我将 Windows NFS 服务器设置为相同的 umask(那里是 000,由于某种原因它被颠倒了),实际上两个用户都可以读取和写入驱动器。但是现在当尝试用redmine创建一个新的仓库时,弹出错误500。无用的日志条目显示 Rugged::NetworkError (unpacking the sent packfile failed on the remote):

现在服务器上已经配置了 git 个存储库,当我尝试向其中一个提交某些内容时,弹出以下错误

Total 3 (delta 0), reused 0 (delta 0)
POST git-receive-pack (397 bytes)
remote: fatal: error when closing sha1 file: Permission denied

有什么想法可以在这里做什么吗?

nfs 客户端、redmine 和 git 服务器:ubuntu 服务器 14.04.4 LTS
nfs 服务器:Windows 服务器 2012R2

上的 haneWin nfs 服务器

所以这整件事很奇怪。最后,我使用了一个虚拟 vdi 磁盘,该磁盘存储在 Windows 服务器上的一个文件夹中,由 ubuntu 通过 SMB(到 /srv/shareSMB)共享和安装。然后 ubuntu 再次将 vdi 安装到原始 /srv/share。这行得通。

我认为问题导致了 unix 和 Windows 世界在文件结构(尤其是链接)方面的差异。 Gitolite 似乎经常使用链接,这可能是万恶之源,这样所有的 gitolite 存储库都被破坏了,我需要重新安装它。