SVN权限设置主要通过两种方式实现: svnserve配置(适用于纯文本模式的SVN服务器)和 基于Web的权限管理系统(如Apache或IIS的WebDAV模块)。以下是具体设置方法:
一、纯文本模式权限设置(svnserve)
配置svnserve.conf
- 打开存储库的`conf`目录下的`svnserve.conf`文件。
- 修改以下关键配置:
- `anon-access = none`:禁止匿名访问(需验证用户)
- `auth-access = write`:允许授权用户写操作
- `password-db = passwd`:指定账号密码文件
- `authz-db = authz`:指定权限管理文件
- 示例配置:
```ini
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
```
配置账号密码文件(passwd)
- 在`conf`目录下创建或编辑`passwd`文件,格式为:
```
[users]
username = password
```
示例:
```
[users]
harry = harryssecret
sally = sallyssecret
```
- 若包含中文名称,需使用UTF-8编码保存(推荐使用UltraEdit或EditPlus)。
配置权限规则(authz)
- 在`conf`目录下创建或编辑`authz`文件,定义用户组及权限:
```
[groups]
readers = harry,sally
writers = harry,sally,joe
[groups]
developers = elva,bao,zuo,lai
[/]
@readers = rw
@writers = rw
@developers = rw
```
- 示例说明:
- `@readers`组拥有根目录读写权限;
- `@writers`组拥有读写权限;
- `@developers`组拥有读写权限。
二、基于Web的权限管理系统(如Apache)
配置Web服务器
- 使用Apache或IIS的WebDAV模块启用SVN支持。
- 配置虚拟主机,指向SVN存储库路径(如`D:\svnbase`)。
设置目录权限
- 在存储库根目录下创建`.htaccess`文件,定义权限规则:
```
[groups]
developers = elva,bao,zuo,lai
[lucene]
@developers = rw
[bt]
@developers = rw
```
- 示例说明:
- `@developers`组拥有`lucene`和`bt`目录的读写权限。
配置用户认证
- 在Web服务器中配置用户认证,将用户添加到相应的组(如`developers`)。
三、注意事项
权限继承与覆盖
- 子目录权限会覆盖父目录设置(如`/delphi`目录的权限会覆盖根目录设置)。
- 特殊符号含义:
- `*=`:所有用户无权限;
- `user1=`:用户`user1`无权限。
权限验证
- 修改配置后需重启`svnserve`服务(如`svnserve -d`)。
- 建议定期检查权限文件格式,避免因格式错误导致权限失效。
工具辅助
- 可使用SVN客户端(如TortoiseSVN)图形界面批量管理权限。
通过以上两种方式,可灵活实现SVN存储库的权限管理,满足不同场景需求。