现在,Subversion(简称SVN)在服务器上得到了越来越广泛的应用,SVN版本控制系统主要用来跟踪文件的变化,促使多人协作开发的开发流程更加高效,而其中一个重要的步骤便是权限设置。
当运行在linux服务器上,对SVN进行权限管理时,有多种不同的途径,具体包括:基于WebDAV方式的普通用户账号;基于 ssh 方式的系统用户账号;以及基于HTTP 和 HTTPS方式( Apache)的授权方式。但除了上述几种途径之外,最为常见的还是基于Apache方式的授权方式,其中有一些必须特别说明的:
首先,Apache需要以Mod_Dav_svn的形式对Subversion进行授权,其方式是在httpd.conf文件的配置中,通过添加以下代码:
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/svn-auth-users
Require valid-user
其次,在系统添加用户信息在Subversion权限设置中,必须要在Apache用户账号文件(/etc/svn-auth-users)中手动添加用户,添加用户的具体操作为:
$ htpasswd -c /etc/svn-auth-users username
此外,还可以采用服务的groups方式来管理项目组的权限,在相应的httpd.conf文件中增加以下代码:
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/svn-auth-users
AuthzSVNAccessFile /etc/svn-auth-svn
Require valid-user
然后编辑/etc/svn-auth-svn,可以看到代码举例如下:
[groups]
admins = admin1, admin2
[/home/svn/project1]
@admins = rw
* = r
最后,启动apache服务(service httpd start),重新加载apache配置文件(service httpd reload),就可以实现对Linux服务器上SVN进行权限管理的需求。
通过以上步骤,我们可以很容易的实现Linux服务器上对SVN的权限设置,让管理者以及不同组的用户都可以拥有合理的权限,从而更加有效的实现Subversion的应用。