公司的SVN代码近段时间交由自己维护,由于之前开发人员很少,都是自己项目组成员,所以代码如文档库doc,源码src等库里都没有任何权限控制,svn/conf/passwd下加入的所有成员都有权限做任何事。
今天碰到实体渠道部门同事,需要将他们的代码进驻到我们的svn库里。这产生了一个问题:权限控制的粒度?双方开发人员对彼此的文档,代码库不能拥有访问,操作权限(以下例子中仅配置了一方权限)。
如下方式经测试可行,直接上代码:
svn/conf文件下包含3个文件:
--authz 权限控制
--passwd svn用户账户设置
--svnserve.conf 全局配置文件
其中svnserve.conf属全局配置文件,只要放开以下几行代码即可。
anon-access = none(禁止匿名访问)
auth-access = write
password-db =passwd
authz-db =authz
passwd里简单添加2个账户:
[users]
zhangsan=zhangsan8888
lisi=lisi6666
wangwu=wangwu1234
最核心的地方,就是authz文件里的设置。
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
admin=david
doc=xxxx,yyyyy,zzzz
project=aaa,bbb,ccc,ddd
shitiqudao_group=zhangsan,lisi
shitiqudao_child_group=wangwu
[doc:/]
@admin = rw
@doc = rw
@project=rw
[src:/]
@admin=rw
@project=rw
[/doc]
@doc=rw
[/src]
@project=rw
# * = r
[/src/ShiTiQuDao]
@shitiqudao_group=rw
[/src/ShiTiQuDao/branch]
@shitiqudao_child_group=rw
这样就将shitiqudao部门的zhangsan,lisi的目录权限仅划到/src/ShiTiQuDao划目录下,而其子部门下的wangwu就仅有/src/ShiTiQuDao/branch目录下的操作权限。