MvG*_*MvG 5 ssh user-management version-control authorization bazaar
我目前正在调查是否可以在类似于 gitolite 为 git 所做的设置中为 bzr 提供服务。这意味着一个 unix 帐户,通过他们的 ssh 公钥管理不同的用户。我很乐意将其与 gitolite 集成,在这种情况下,~/.ssh/authorized_keys
可以委托用户管理和创建合适的。这将处理身份验证。
让我担心的是授权。在我看来,bzr serve
开箱即用只有--directory
提供访问控制的标志。这适用于为每个用户提供他或她自己的一组存储库,或者用于将用户分配到组并为每个组提供一组固定的存储库。多做一点工作,一个用户可以使用一个目录,但使用符号链接允许多个用户共享访问存储库。
尽管如此,这仍然远不及gitolite所能做到的。使用这种方法,不可能授予单个用户对某些存储库的只读访问权限,但授予对其他存储库的读写访问权限。也无法防止覆盖推送或在用户目录中创建新存储库。
可能是这些功能还没有实现。在相关的 Stack Overflow 问题中,我问的是如何自己实现这一点。在服务器故障上,我专注于现有的解决方案。是否有任何现成的解决方案赋予bzr serve
比简单--directory
限制更细粒度的访问控制?像 gitolite 这样的完全集成的解决方案将是最有趣的,但即使是一些可能被配置为解决我提到的问题之一的扩展也会很高兴知道。
如果您不只专注于一位用户,您可以考虑以下设置:
chmod g+s <repo>
)。setfacl -R -m d:u:UID:rwX <repo>; setfacl -R -m u:UID:rwX <repo>
)。这确保所有者始终可以删除。因此,您可以通过“符号链接存在”控制读取访问,并通过“组中的用户”控制写入访问。如果您想为存储库实现多个主用户,您可以添加一个额外的 d:u:UID:rwX,u:UID:rwX,每个附加主用户一个。