我正在设置一个 Git 服务器,并且将有三个不同的小组处理不同的项目iOS系统,网络开发,安卓。我需要以安全的方式做到这一点。
同时,我不希望 iOS 开发者能够改变 Android 的东西,反之亦然。换句话说,我想将任何组限制为仅限于他们自己的项目。 (读取权限不是问题,但如果您能告诉我如何限制读取权限,我将不胜感激)
我需要您帮助配置服务器,以便开发人员可以通过他们的公钥通过 SSH 使用拉/推/提交,但仅限于他们自己的项目!有没有办法将它们监禁到自己的项目存储库目录中?例如,有没有办法说每当 X 用户拥有公钥x_id_rsa.pub
或请求[email protected]:~/git/iOS
尝试推送或拉取数据时,就应该被监禁到 iOS 中?
最后一个问题是,如何通过 SELinux 对每个存储库目录使用不同类型的策略?
我正在使用 CentOS,在这里你可以看到我不成功的 - 而且荒谬的 - 尝试:
- 创建一个名为 git 的用户,并为用户 git 分配 3 个组。
- iOS系统
- 安卓
- 网络开发
- 创建了3个需要的目录和用户
chown git:$ProjectGroup $Dir
- 用于
chmod g+rwxs *
目录。 - 更改我的 sshd_conf 以拒绝密码验证真实性并启用 [Pubkey/RSA] 身份验证。
- 创建
.ssh/authorized_keys
并放入/home/git/
. - 用于
git init --bare
git 用户主目录下的所有目录,即 iOS、Android 和 WebDevel。 - 我已经糊涂了!
请详细解释一下,告诉我哪些地方应该改,哪些地方错了。我愿意接受任何建议。
是否可以使用任何存储库作为组的主目录?即 iOS →$HOME=/home/git/iOS