转自:http://blog.sina.com.cn/s/blog_50a7c4a60100941d.html
svn权限管理
svn的权限管理涉及到一下文件:
passwd文件 -- /conf目录下 用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz -- /conf目录下 用于存放本svn库的访问授权信息。
SVNserve.conf /conf目录下 用于存放本svn库的全局访问控制信息。
最重要的是authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
svn的权限管理涉及到一下文件:
passwd文件 -- /conf目录下 用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz -- /conf目录下 用于存放本svn库的访问授权信息。
SVNserve.conf /conf目录下 用于存放本svn库的全局访问控制信息。
最重要的是authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
-------多项目权限配置--------
多项目共享配置文件在G:/SVNRoot/conf (有
passwd和authz文件)
1.建立多版本库:
版本库1:
svnadmin create G:/SVNRoot/nninfo
svnadmin create G:/SVNRoot/nninfo
版本库2:
svnadmin create G:/SVNRoot/gxzx
svnadmin create G:/SVNRoot/gxzx
2.修改版本库配置文件:
版本库1:G:/SVNRoot/nninfo/conf/svnserve.conf
版本库1:G:/SVNRoot/nninfo/conf/svnserve.conf
[general]
anon-access = none ##(none:不允许匿名用户访问)
auth-access = write
password-db = ../../conf/ passwd ##指向G:/SVNRoot/conf目录的passwd文件
authz-db = ../../conf/authz
realm = pronninfo
anon-access = none ##(none:不允许匿名用户访问)
auth-access = write
password-db = ../../conf/ passwd ##指向G:/SVNRoot/conf目录的passwd文件
authz-db = ../../conf/authz
realm = pronninfo
版本库2:G:/SVNRoot/gxzx/conf/svnserve.conf
[general]
anon-access = none
[general]
anon-access = none
auth-access = write
password-db = ../../conf/ passwd
authz-db = ../../conf/authz
password-db = ../../conf/ passwd
authz-db = ../../conf/authz
realm = progxzx
即除realm = progxzx外,其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。
2.配置允许访问的用户
为了简化配置,2个版本库共用1个用户配置文件G:/SVNRoot/conf下。如有必要,也可以分开。注意:对用户配置文件的修改立即生效,不必重启svn
打开G:/SVNRoot/conf/的
passwd文件
[users]
hgx = hgx
cook = cook
hgx = hgx
cook = cook
3.配置用户访问权限:
打开G:/SVNRoot/conf/的
authz文件
为了简化配置,3个版本库共用1个权限配置文件/opt/svn/conf/pwd.conf。如有必要,也可以分开。文件中定义用户组和版本库目录权限。
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为G:/SVNRoot。这样,/就是表示对全部版本库设置权限。
pronninfo:/,表示对版本库1设置权限
pronninfo:/occi, ,表示对版本库1中的occi目录设置权限
progxzx:/,表示对版本库2设置权限
pronninfo:/,表示对版本库1设置权限
pronninfo:/occi, ,表示对版本库1中的occi目录设置权限
progxzx:/,表示对版本库2设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限
示例:
[groups]
admin = hgx
[groups]
admin = hgx
guest = cook
[/]
@admin = rw
@admin = rw
[pronninfo:/occi]
hgx = rw
hgx = rw
[progxzx:/]
hgx = rw
hgx = rw
cook = r
删除无用文件:
rm G:/SVNRoot/nninfo/conf/authz
rm G:/SVNRoot/nninfo/conf/passwd
rm G:/SVNRoot/gxzx/conf/authz
rm G:/SVNRoot/gxzx/conf/passwd
rm G:/SVNRoot/nninfo/conf/authz
rm G:/SVNRoot/nninfo/conf/passwd
rm G:/SVNRoot/gxzx/conf/authz
rm G:/SVNRoot/gxzx/conf/passwd