我正在使用SVN(合作颠覆边缘)和Tortoise SVN来管理由多个人编辑的网站。

我想将某些用户访问到某些目录(以防止他们查看数据库凭据等)。他们只需要阅读访问一个目录。

可以在SVN中执行此操作吗?

谢谢!

编辑

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

有帮助吗?

解决方案

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

repo:/trunk/samplefolter

*=

@Repo_RESTRICTARDED_USERS = r

@repo_super_users = rw

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

repo_restrictrict_users = john.doe,tom.riddle

repo_super_users = harry.potter,lord.voldemort

这将提供对存储库中的文件夹样本文件夹的访问,同时使其他文件夹关闭。希望这可以帮助。

其他提示

迈克(Mike)链接的SVN书可为您提供有关可用身份验证方法的良好概述。

如果您在Windows上,并且不介意切换SVN服务器, VisualSVN服务器 是可以在几分钟内安装的免费SVN/APACHE包装器,并提供脑部超越的点击用户/访问管理。我已经使用了多年了,我喜欢它。

您可以通过编写所谓的预订挂钩来以独立的方式执行您想要的操作。您可以阅读有关钩子的更多信息 SVN书. 。基本上,您将获得更新的用户名和目录位置,并有能力决定是否接受交易。

一个很好的例子 这个网站. 。基本上,您将要使用脚本 commit-access-control.pl, ,用颠覆打包,为您执行权限检查。您要做的就是编写一个简单的配置文件,该文件描述人们可以写和阅读的位置。

如果您碰巧将HTTP与Apache一起使用,则可以使用authz_svn apache模块描述 书中.

如果他们需要一个目录,我认为最简单的是为此创建第二个 /其他存储库,并将其包括在内 svn:externals 在“主要”项目中(这仍然会做出 svn update 还从其他存储库等获取更新)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top