SVN的权限管理--方式之一

来源:互联网 发布:淘宝客服的工作怎么找 编辑:程序博客网 时间:2024/04/29 08:46
  
SVN的权限管理--方式之一
 
1.配置httpd.conf文件
假设我们有如下需求,J2ME组需要用svn管理本组几个项目的代码和文档。前提是我们已经搭建好了SVN服务器(可以参考"Windows下安装和配置SVN Server"一文)。
首先在Apache2/conf/httpd.conf文件的末尾添加如下内容,后面将做解释说明。
<Location /j2me>
DAV svn
SVNParentPath F:/svnlib/j2me
AuthzSVNAccessFile F:/svnlib/j2me/accessfile
Require valid-user
AuthType Basic
AuthName "身份验证"
AuthUserFile F:/svnlib/passwd
</Location>
 
SVNParentPath 所指定的目录表示J2ME组所有的"库"所在的根路径。
<Location /j2me>表示用户可以通过http://svnserver/j2me/"库名" 的方式来访问指定的库,注意现在我们还没为J2ME组建立任何库。
AuthUserFile所指定的文件用来存放用户名密码,稍后将说明如何生成和管理这个文件。
AuthzSVNAccessFile所指定的文件用来管理用户组和用户的权限。稍后将说明的使用。
 
2.建库
假设J2ME组现在有两个项目project1和project2,下面分别为这两个项目分别建库,在DOS窗口中输入
svnadmin create f:/svnlib/j2me/project1
svnadmin create f:/svnlib/j2me/project2
若要上面的命令没能够正确执行,请确认%SVN_HOME%/bin是否已经被添加环境变量PATH中,在本例中是C:/svn-win32-1.4.2/bin,如果没有也可以先进入到%SVN_HOME%/bin目录下,然后再执行上面的命令。建好后project1和project2文件夹下会生成一些文件和目录。
3.创建用户
    假设J2ME组现在有开发人员developer1, developer2,配置管理员renee,打开DOS窗口,先创建第一个用户:
 
htpasswd -c F:/svnlib/passwd developer1
 
htpasswd是Apache提供的生成密码文件的命令,默认使用MD5给密码加密,所以即使用文件编辑器打开F:/svnlib/passwd文件,也看不到用户的密码信息,执行前也需要确认%APACHE_HOME%/bin是否已经被添加环境变量PATH中,在本例中是C:/Apache Group/Apache2/bin,如果没有也可以先进入到%APACHE_HOME%/bin目录下,然后再执行上面的命令。
 
-c 这个参数只在第一次创建用户时使用,表示生成一个密码文件,以后添加用户时就不再需要这个参数了。
 
F:/svnlib/passwd 这个参数必需与前面的AuthUserFile所指定的参数一致,表示密码文件所在的路径是F:/svnlib/,文件名为passwd。
developer1 表示要创建名为developer1的用户
 
    回车后会两次提示输入密码,两次的密码一致后变成功创建了用户。接下来再创建两个用户
htpasswd F:/svnlib/passwd developer2
htpasswd F:/svnlib/passwd renee
4.配置权限
    这里就要用到AuthzSVNAccessFile 所指定的文件了,首先需要在F:/svnlib/j2me路径下创建名为accessfile的文件(注意,没有扩展名),然后用文件编辑器打开这个文件,输入下面内容:
 
#组信息
[groups]
#这里分为两个组,一个是开发组,一个是配置管理员组
g_developer = developer1, developer2
g_conf = renee
 
#配置project1库的权限
[project1:/]
#这里需要注意的是为组赋权限的时候,需要在组名前面加上一个"@",而为用户赋权限的时候则直接使用用户名既可。
#开发人员有读写权限
@g_developer = rw
#配置管理员有只读权限
@g_conf = r
 
#配置project2库的权限
[project2:/]
@g_developer = rw
renee = r
 
5.补充
    假设如果以后需要为Brew组库,可以在Apache2/conf/httpd.conf文件的末尾添加如下内容,基本与为J2ME组建时的操作一样。只是AuthUserFile 可以使用同一个文件,而AuthzSVNAccessFile 最好每个组有自己的文件,方便管理。
 
<Location /brew>
DAV svn
SVNParentPath F:/svnlib/brew
AuthzSVNAccessFile F:/svnlib/brew/accessfile
Require valid-user
AuthType Basic
AuthName "身份验证"
AuthUserFile F:/svnlib/passwd
</Location>
Brew组的用户可以通过http://svnserver/brew/"库名"来访问指定的库。
原创粉丝点击