具有多个存储库的 Git 服务器

具有多个存储库的 Git 服务器

我正在设置一个 Git 服务器,并且将有三个不同的小组处理不同的项目iOS系统,网络开发,安卓。我需要以安全的方式做到这一点。

同时,我不希望 iOS 开发者能够改变 Android 的东西,反之亦然。换句话说,我想将任何组限制为仅限于他们自己的项目。 (读取权限不是问题,但如果您能告诉我如何限制读取权限,我将不胜感激)

我需要您帮助配置服务器,以便开发人员可以通过他们的公钥通过 SSH 使用拉/推/提交,但仅限于他们自己的项目!有没有办法将它们监禁到自己的项目存储库目录中?例如,有没有办法说每当 X 用户拥有公钥x_id_rsa.pub或请求[email protected]:~/git/iOS尝试推送或拉取数据时,就应该被监禁到 iOS 中?

最后一个问题是,如何通过 SELinux 对每个存储库目录使用不同类型的策略?

我正在使用 CentOS,在这里你可以看到我不成功的 - 而且荒谬的 - 尝试:

  1. 创建一个名为 git 的用户,并为用户 git 分配 3 个组。
    • iOS系统
    • 安卓
    • 网络开发
  2. 创建了3个需要的目录和用户chown git:$ProjectGroup $Dir
  3. 用于chmod g+rwxs *目录。
  4. 更改我的 sshd_conf 以拒绝密码验证真实性并启用 [Pubkey/RSA] 身份验证。
  5. 创建.ssh/authorized_keys并放入/home/git/.
  6. 用于git init --baregit 用户主目录下的所有目录,即 iOS、Android 和 WebDevel。
  7. 我已经糊涂了!

请详细解释一下,告诉我哪些地方应该改,哪些地方错了。我愿意接受任何建议。

是否可以使用任何存储库作为组的主目录?即 iOS →$HOME=/home/git/iOS

相关内容