SVN用户组和权限

时间:2010-06-24 09:23:34

标签: svn permissions tortoisesvn ssh usergroups

我在我的托管帐户上设置了SVN服务器。用户可以签入和签出,但他们可以访问我的整个存储库。

为了让人们访问,我向用户发出了一个公钥到我的帐户,然后我在〜/ .ssh里面的“authorized_keys”文件中添加一行,如下所示:

command="/home/user/packages/bin/svnserve -t -r /home/user/repository --tunnel-user=diogo",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa [KEY DATA IN HERE]== xxxx@xxxx.hostxxxxx.com

然后,用户可以通过隧道从我的服务器结帐:

svn+ssh://host.com/project/trunk

我的问题是如何限制某些用户访问某些项目?

1 个答案:

答案 0 :(得分:1)

您正在使用SSH隧道。如果我正确读取svn book,您需要为您登录的用户设置存储库文件本身的权限,但您也可以直接在conf文件中阻止用户:

  

在隧道上运行时,授权主要由操作系统对存储库数据库文件的权限控制;这与Harry直接通过file:/// URL访问存储库非常相似。

     

如果多个系统用户将直接访问存储库,您可能希望将它们放入一个公共组,并且您需要小心umasks。 (请务必阅读“支持多个存储库访问方法”一节。)

     

但即使在隧道的情况下,只需设置auth-access = read或auth-access = none,svnserve.conf文件仍可用于阻止访问。

(来自“SSH身份验证和授权”)

顺便说一句,你说你在托管帐户上这样做了。我曾尝试过一次,但不得不放弃,因为我不允许添加新的SSH用户。如果无法添加SSH用户帐户,则无法通过隧道进行细粒度身份验证 - 用户始终可以完全访问存储库。

要独立于SSH使用多用户身份验证,您必须将svn与Apache集成,这在共享环境中通常是不可能的。

我最终切换到一个基于Windows的小型虚拟服务器并在那里安装了Brain-dead easy svn wrapper VisualSVN Server。它花了一些钱(约20欧元/月,我看到基于Linux的虚拟服务器起价10美元),但从那以后我一直很满意。 (当然,您可以使用Linux并使用Apache设置svn,这也是VisualSVN内部所做的。)