我目前正在调查是否可以在类似于gitolite的git中使用bzr。 这意味着一个单一的Unix帐户,不同的用户通过他们的SSH公钥pipe理。 我很乐意将它与gitolite整合,在这种情况下,可以委托用户pipe理和创build合适的~/.ssh/authorized_keys 。 这将涉及身份validation。
我担心的是授权。 据我所知, bzr serve开箱即用只有--directory标志来提供访问控制。 这适合于为每个用户提供他或她自己的一套存储库,或者将用户分配给组,并为每个组分配一组固定的存储库。 多花一点工夫,可以为每个用户使用一个目录,但是使用符号链接来允许多个用户共享访问存储库。
尽pipe如此,这还远远less于gitolite能做的。 使用这种方法,不可能向个别用户授予对某些其他存储库的只读访问权限。 也不可能防止覆盖推送,或者在用户的目录中创build新的存储库。
可能这些function还没有实现。 在一个相关的堆栈溢出问题,我正在问自己实现这个方法。 这里关于服务器故障我正在专注于现有的解决scheme。 是否有任何现成的解决scheme,赋予bzr serve更精细的访问控制比简单的目录限制? 一个完全集成的解决scheme,如gitolite将是最有趣的,但即使一些扩展可能被configuration为解决我提到的问题之一,很高兴知道。
如果你不是只有一个用户,你可以考虑下面的设置:
chmod g+s <repo> )。 setfacl -R -md:u:UID:rwX <repo>; setfacl -R -mu:UID:rwX <repo> )。 这确保了所有者可以随时删除。 因此,您可以通过“符号链接存在”控制读取访问,并通过“用户在组”中写入访问。 如果要为存储库实现多个主用户,则可以为每个附加主节点添加一个附加的d:u:UID:rwX,u:UID:rwX。