SVN - 用户目录权限

时间:2010-09-16 15:59:23

标签: svn tortoisesvn directory-permissions

我正在使用SVN(CollabNet Subversion Edge)和Tortoise SVN来管理由多人编辑的网站。

我想限制某些用户访问某些目录(以防止他们看到数据库凭据等)。它们只需要对一个目录的读访问权。

是否可以在SVN中执行此操作?

谢谢!

修改

他们正在运行XP和Windows 7的混合。服务器在Windows 2008上。 正在使用的协议是http。

4 个答案:

答案 0 :(得分:7)

这可以通过使用svnaccess.conf文件来实现。假设您使用Windows域身份验证,这是一种向Windows用户提供文件夹级访问的方法。 (svnaccess.conf文件的示例部分)

[回购:/中继/ samplefolder的]

* =

@repo_restricted_users = r

@repo_super_users = rw

这里,repo_restricted_users和repo_super_users是必须在svnaccess.conf文件中先前定义的用户组 - 因此:

repo_restricted_users = john.doe,tom.riddle

repo_super_users = harry.potter,lord.voldemort

这将提供对存储库中文件夹样本文件夹的读访问权限,同时保持其他文件夹关闭。希望这会有所帮助。

答案 1 :(得分:3)

由Mike链接的SVN书籍为您提供了有关可用身份验证方法的完整概述。

如果您使用的是Windows并且不介意切换SVN服务器,VisualSVN Server是一个免费的svn / Apache包装器,可以在几分钟内安装,并提供易于点击的简单点击用户/访问管理。我已经使用它多年了,我喜欢它。

答案 2 :(得分:1)

您可以通过编写所谓的预提交挂钩,以独立于平台的方式执行您想要的操作。您可以在the svn book中阅读有关挂钩的更多信息。基本上,您将获得更新的用户名和目录位置,并能够决定是否接受该交易。

this site上有一个很好的例子。基本上,您需要使用与subversion一起打包的脚本 commit-access-control.pl 来执行权限检查。您所要做的就是编写一个简单的配置文件,描述人们可以写和读的位置。

如果你碰巧使用http和apache,那么你可以使用authz_svn apache模块描述here in the book

答案 3 :(得分:1)

如果他们需要一个目录,我认为最简单的方法是为其创建第二个/其他存储库,并将其与{main}项目中的svn:externals包含在一起(仍将使svn update还从其他存储库获取更新等。)。

相关问题