如何为 git 用户设置可组写入存储库和 SSH 访问?

如何为 git 用户设置可组写入存储库和 SSH 访问?

我正在 Ubuntu 14.04 LTS 上设置 Git 服务器。我需要该服务器同时支持 SSH 和 HTTP 协议。

到目前为止,我已经按照Git 手册使我的服务器支持 SSH 协议。

为了支持 HTTP 协议,我正在挂钩推倒进入我现有的 Web 服务器。但是,由于 Web 服务器以不同的用户身份运行,因此它无法写入“git”用户拥有的主存储库。因此,我将我的 Web 服务器用户添加到“git”组,并执行了操作,chmod -R g+w /home/git使 HTTP 协议正常工作。但是,这样做无意中破坏了对存储库的 SSH 访问,因为 OpenSSH 不允许用户的主目录为组可写。

我想到了一些可以解决这个问题的方法。

  1. AuthorizedKeysFile通过设置自定义位置或设置来更改全局 SSH 配置选项StrictModes no。我不想做这两件事,因为更改会影响我的其他非 git SSH 用户。
  2. 从 git 用户的主目录中删除组写入权限,然后编写一个脚本,手动将组写入权限添加到新存储库。这可能有效,但似乎不是一个非常优雅的解决方案。

关于如何构建我的文件系统以允许组可写的 git 存储库同时保持 SSH 访问,有什么建议吗?

相关内容