1、svnserve.conf
``SVN\conf\svnserve.conf`` 文件,是 svnserve.exe 这个服务器进程的配置文件。
首先,我们告诉 svnserve.exe,用户名与密码放在passwd.conf 文件下。当然,你可以改成任意的有效文件名,比如默认的就是
passwd::
password-db = passwd.conf
只允许经过验证的用户,方可访问代码库。
anon-access = none
auth-access = write
告诉 svnserve.exe,项目目录访问权限的相关配置是放在 authz.conf 文件里:
authz-db = authz.conf
svn 1.3.2 引入本功能的时候,系统默认使用 authz 而不是 authz.conf 作为配置文件。
passwd.conf 和 authz.conf 两个文件也可以作为多个代码库共享使用,我们只要将它们放在公共目录下,比如说放在 ``D:\svn`` 目录下,然后在每个代码库的 svnserve.conf 文件中,使用如下语句::
password-db = ..\..\passwd.conf
authz-db = ..\..\authz.conf
或者::
password-db = ../../passwd.conf
authz-db = ../../authz.conf
这样就可以让多个代码库共享同一个用户密码、目录控制配置文件,这在有些情况下是非常方便的。
2、authz.conf 之用户分组
``SVN\conf\authz.conf``文件的配置段,可以分为两类
``[group]`` 是一类,里面放置着所有用户分组信息。
其余以 ``[SVN:/]`` 开头的是另外一类,每一段就是对应着项目的一个目录,其目录相关权限,就在此段内设置。
首先,我们将人员分组管理,以便以后由于人员变动而需要重新设置权限时候,尽量少改动东西。我们一共设置了5个用户分组,分组名称统一采用 ``g_`` 前缀,以方便识别。当然了,分组成员之间采用逗号隔开:
[groups]
# 任何想要查看所有文档的非本部门人士
g_vip = morson
# 经理
g_manager = michael
# 北京办人员
g_beijing = scofield
# 上海办人员
g_shanghai = lincon
# 总部一般员工
g_headquarters = rory, linda
# 小秘,撰写文档
g_docs = linda
注意到没有, linda 这个帐号同时存在“总部”和“文档员”两个分组里面,这可不是我老眼昏花写错了,是因为 Subversion 允许我这样设置。它意味着,这个家伙所拥有的权限,将会比他的同事rory 要多一些,这样的确很方便。具体多了哪些呢?
3、authz.conf 之项目根目录
接着,我们对项目根目录做了限制,该目录只允许SVN事业部的经理才能修改,其他人都只能眼巴巴的看着:
[SVN:/]
@g