svn多仓库权限控制

一、前言

上文介绍了如何在服务器安装配置svn服务, 这篇文章简单介绍一下我对svn权限控制的理解

svn的权限通过authz进行控制

用户和密码通过passwd进行控制

二、应用分析

一般来说每个项目建立一个仓库, 通过管理仓库下的authz和passwd进行权限控制即可

但是为了方便统一管理, 可以将这两个文件放到svn项目仓库的根目录, 统一分配账号和权限

举个例子,如果公司现在有个管理系统【file-system】在开发, 张三是项目经理, 李四(水平稍微好点)、王五是开发人员, 赵六是测试人员

可以这样管理

passwd文件

通过passwd分配用户账户和密码

1
2
3
4
5
6
7
8
9
# 项目经理
zhangsan = 123456

# 开发人员
lisi = 123456
wangwu = 123456

# 测试人员
zhaoliu = 123456

authz

在这个文件中进行授权

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[groups]
# 定义角色(分组)
# 项目经理
admin = zhangsan
# 开发人员
dev = lisi,wangwu
# 测试人员
test = zhaoliu

[/]
* =
# 关闭所有人的权限
[file-system:/trunk]
# 项目经理对trunk分支有读写权力
@admin = rw

# 项目经理对分支有完全控制权限
[file-system:/branches]
@admin = rw

# 项目经理对标签完全控制权限
[file-system:/tags]
@admin = rw

# 开发分支项目经理和开发
[file-system:/branches/dev]
@admin = rw
@dev = rw

# 单独对配置进行控制,由能力较强的李四控制
[file-system:/branches/dev/config]
lisi = rw
wangwu = r

# 配置测试人员的权限
[file-system:/branches/test]
zhaoliu = r

在这个配置文件中

对项目经理开放了所有权限【*】

李四开放了开发分支【dev】的所有权限

王五开放了开发分支【dev】除了config文件夹以外的所有权限,对config有读的权限

赵六对测试分支【test】有读的权限

其他仓库可参考这个进行配置

三、总结

由于没有担任过项目经理, 自己玩git和svn也就是单机,对权限控制这块是我自己的理解,大家斟酌是否适用自己的项目, 在开发中应该由项目经理在trunk主干中建立branches/dev分支,开发人员就在这个分支中进行开发,开发结束后由项目经理推送到测试分支,测试人员在测试分支中进行测试

权限测试过没问题,设计是否合理日后进行实践