Subversion配置多个库

在阅读本文之前,请确定你已经知道了Subversion基本的服务器管理,知道了svnserve或Apache的配置,清楚如何设置用户和密码。关于svnservee的配置可以看我们的《Subversion快速入门教程》和《用Apache和Subversion搭建安全的版本控制环境》,对于一些细节情参考《使用Subversion进行版本控制》。
    作为一个配置管理员,需要管理用户的权限,本文主要介绍了使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。

    很多情况下,往往一个库是不够的,我们会按项目,或按前编程语言类别,亦或是分工来建立多个库,而我们又想使用同一套认证,授权方案。那么本文就是基于这样的情形做介绍。

1. 认证(Authentication)和授权(Authorization)
    这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限。在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限。在Subversion 1.3之后,svnserve和Apache一样都可以使用“authz-db”文件。

2. SVN Serve下的配置文件

    本文使用Subversion 1.7.9 http://sourceforge.net/projects/win32svn/files/1.7.9/apache22/
    因为本文是以svnserve为例的,所以先介绍一下多版本库目录的结构:

 

─Repo
 ├─JavaRepo
 │  ├─conf
 │  ├─db
 │  │  ├─revprops
 │  │  │  └─0
 │  │  ├─revs
 │  │  │  └─0
 │  │  ├─transactions
 │  │  └─txn-protorevs
 │  ├─hooks
 │  └─locks
 └─PHPRepo
     ├─conf
     ├─db
     │  ├─revprops
     │  │  └─0
     │  ├─revs
     │  │  └─0
     │  ├─transactions
     │  └─txn-protorevs
     ├─hooks
     └─locks

 

JavaRepo/conf下的authz与passwd与PHPRepo/conf下的authz与passwd 拷贝另一目录下的一套(authz,passwd)到Repo目录下,其余的删掉即可。

 

分别修改配置文件conf/svnserve.conf

### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = ../../passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = ../../authz

 

将配置文件指向上上层目录

 

 

确保admin可以读写任何库;java开发人员只能读写JavaRepo;php开发人员只能读写PHPRepo,测试人员两个库都仅有可读权限;匿名用户不可访问任何库

 

修改passwd

[users]
#php开发
ch = ch0126
qh = qh0126
#java开发
hb = hb0126
qs = qs0126
#测试
ry = ry0126

 

  修改authz

[groups]
admin_group = chaohai
java_group = haibao,qiushui
php_group = qinghai
test_group = ruoye

# 指定所有的版本库默认只读,admin_group组可读写
[/]
* = none
@admin_group = rw


# 指定对版本库JavaRepo根目录的权限
[JavaRepo:/]
# 未授权用户没有任何权限
* = none
@admin_group = rw
@java_group = rw
@test_group = r


# 指定对版本库PHPRepo根目录的权限
[PHPRepo:/]
# 未授权用户没有任何权限
* = none
@admin_group = rw
@php_group = rw
@test_group = r

 

 创建windows服务

sc create SVNService binpath= "D:\SoftwareDevelopment\Subversion\svn-win32-1.7.9\bin\svnserve.exe --service -r D:\Repositories\SVN\Repo" displayname= "SVNService" depend= Tcpip start= auto

 

SC SVNService start

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值