基于Apache的Subversion权限配置

来源:互联网 发布:mac电脑视频剪辑软件 编辑:程序博客网 时间:2024/05/11 15:26

      由于我搭建的Subversion服务是基于Apache的,所以配置Subversion的权限,实际上就是配置Apache相关服务的访问权限。

      翻看了一下TortoiseSVN的手册,发现配置过程很简单。

      首先,打开Apache所在目录,进入conf目录,打开httpd.conf。在httpd.conf文件里,确保以下行已经添加:

 

<Location /svn>
      DAV svn
      SVNListParentPath on
      SVNParentPath D:/SVN
      #SVNIndexXSLT "/svnindex.xsl"
      AuthType Basic
      AuthName "Subversion repositories"
      AuthUserFile passwd
      #AuthzSVNAccessFile svnaccessfile
      Require valid-user
</Location>

 

      然后将"#AuthzSVNAccessFile svnaccessfile"这一行的注释去掉,表示使用访问控制文件。

 

      接下来就是编写访问控制文件svnaccessfile了。

      手册提供了一个例子:

 

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw

 

      按照这个例子改巴改巴,就OK了。只是有一点要注意,就是svnaccessfile文件的[groups]里面的用户名跟httpd.conf文件的"AuthUserFile passwd"行所指定的passwd文件里面的用户要对应。最后,重启Apache服务。

 

      关于svnaccessfile文件里面的目录,当然[/]指的就是<Location /svn>行所指URL的根目录。不过有个地方我不明白,就是像[proj2:/]这种目录是什么意思。因为不懂,所有我没有用到这种格式。希望知道的人指点指点,呵呵。

      刚刚发现,很郁闷的一点,svnaccessfile文件里面的目录不支持中文。不知有没有高手能解决这个问题?

原创粉丝点击