上一节关于Subversion用户权限配置我们了解到Subversion有两种使用方式,本节还是针对Apache方式进行介绍,主要包括Apache方式下的权限管理和分组管理,下面就这个问题来详细说说吧。
Apache方式下的权限管理
Subversion用户权限配置中,进行Apache方式下的权限管理,首先我们要创建一个用户robert。由于是第一次创建用户,我们必须同时创建一个用户口令文件:htpasswd-cauthfilerobert
这时,会提示输入用户密码以及确认用户密码。htpasswd程序会将用户密码进行散列运算后保存在authfile中。创建第二个用户时,我们就不必输入-c开关了。
htpasswdauthfileharry
如果想要删除某个用户,我们可以使用下列指令:htpasswd-Dauthfileharry,这样,harry就被从authfile中删除了。
这时,Subversion的权限管理问题就转化为了Apache的权限管理问
题了。我们将前述的目录配置做一下修改:
- <Location/projectA>
- DAVsvn
- SVNPath/home/svn/projectA
- AuthTypeBasic
- AuthName"SubversionprojectA"
- AuthUserFile/home/svn/projectA/authfile
- Requirevalid-user
- < span>Location>
这样,对projectA访问就必须提供authfile中记录的用户和正确密码才可以进行了。
Apache方式下的分组管理
Subversion用户权限配置中,进行Apache方式下的分组管理,有时我们希望能够将多个开发人员编为一组,使用组的方式来为项目设定权限。比如projectA项目只有属于groupA的成员才可以存取。下面我们来介绍其配置方法。
这里,我们就要用到mod_authz_svn提供的功能了。我们对httpd.conf中的目录配置再做一次修改:
- <Location/projectA>
- DAVsvn
- SVNParentPath/home/svn/
- AuthzSVNAccessFile/home/svn/authz.conf
- AuthTypeBasic
- AuthName"SubversionprojectA"
- AuthUserFile/home/svn/projectA/authfile
- Requirevalid-user
- < span>Location>
大家可以注意到,这里使用了另一个配置文件:authz.conf他的大致结构如下:
- [groups]
- everyone=robert,tommy,songjy,zhengyong,orcus,zhangq
- groupA=robert,zhangq
- groupB=orcus,tommy
- [projectA:/]
- @groupA=rw
- @everyone=r
- [projectB:/]
- @everyone=r
- @groupB=rw
Ok,我想大家应该已经明白Subversion用户权限配置了。:)
【编辑推荐】
- MyEclipse6.0集成SVN及配置详解
- Subversion和TortoiseSVN如何在Windows下进行构建SVN版本控制
- 基于Java的svn客户端工具JavaSVN 1.1.0.beta发布
- 七步搞定Subversion服务器在Ubuntu下的配置
- Subversion日期解析函数缓冲区溢出漏洞