SVN 怎么控制权限 某一个用户只能访问某个文件

SVN 怎么控制权限 某一个用户只能访问某个文件,第1张

从你的截图来看,用的是

http协议

,也就是说SVN

服务器端

已经和Apache集成了,那么你只要修改一下服务器端的权限

控制文件

就可以了,可以这么写权限文件:

[/]

=

user

=

r

user2

=

r

[svnregister:/]

=

user

=

r

user2

=

r

[svnregister:/trunk/test]

user2

=

[svnregister:/trunk/test2]

user

=

如果你的SVN服务器的httpdconf中对于SVN版本库存放地址的指向,用的是SVNParentPath而不是SVNPath,那么就直接用上面的写法就行了,如果用的是SVNPath,那么上面的写法还得

改改

。至于权限文件是哪个文件,你要看httpdconf中AuthzSVNAccessFile指向哪个文件。

你可以看看我的

百度文库

,有篇项目级SVN服务器的搭建指南,其中对

权限管理

的配置有详细描述。

可以实现。简单思路是将权限文件分拆成多个,将这些权限文件作为一个SVN库管理,将每个权限文件的修改权限分配给对应的管理员,并在SVN服务器上checkout一个权限文件库的副本出来,Apache的权限定义引用这个副本中的权限文件。

具体实现方法:

1、建立一个新的SVN库(例如SVN库名为accessfile),专门用于存放权限文件,并建立多个文件夹,每个文件夹下面放一个权限文件。

2、在SVN服务器端存放accessfile库的hooks文件夹下,创建或修改post-commit钩子(这个钩子是在这个SVN库每次commit成功后,由SVN自动调用执行的),钩子内容是将accessfile库update到服务器主机上某个固定的文件夹(例如文件夹名为d:\access)中。

3、将原有的权限文件分拆成多个,分别存放在d:\access文件夹下的子文件夹内,并修改Apahce的httpdconf,使每个库的权限文件分别指向d:\access下的各权限文件。

4、给accessfile库分配权限,将每个权限文件的写权限分配给不同的管理员。

5、在accessfile库checkout到d:\access。

6、每个管理员从自己电脑上checkout出accessfile库,然后可自行修改权限了,每次修改完一commit,SVN服务器就会自动调用post-commit钩子,将权限文件update到d:\access文件夹,权限就立即生效了。

如果你的SVN服务器的用户ID和权限管理是基于操作系统用户的,那么可以通过设置不同操作系统用户对各文件夹的权限来限制

如果你的SVN服务器的用户ID和权限管理是基于Apache的,那么只能考虑从钩子程序下手了,研究一下pre-commit这个钩子吧,这个钩子是在正式提交操作之前服务器端自动执行的,你可以编写这个钩子,在commit时检查是否删除文件夹,如果是则返回错误信息。虽然我没验证过,但理论上应该可以解决

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » SVN 怎么控制权限 某一个用户只能访问某个文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情