svn的auth配置文件介绍
本系列文章由ex_net(张建波)编写,转载请注明出处。
http://blog.csdn.net/ex_net/article/details/8586731
作者:张建波 邮箱: 281451020@qq.com 电话:13577062679 欢迎来电交流!
auth文件主要是用来控制svn的访问权限的。当然,前提条件是采用 svn +apache方式安装才行。
在安装svn时,我们会去修改apache 的 httpd.conf 这个配置文件。
通常情况下会增加一个虚拟站点。
<Location /svn/ynlx>
DAV svn
SVNParentPath /svn/ynlx
AuthType Basic
AuthName "ynlx subversion repository"
AuthUserFile /svn/ynlx/passwd
AuthzSVNAccessFile /svn/ynlx/auth
Require valid-user
</Location>
一、基础知识介绍
如果你的apache默认站点是 http://127.0.0.1/访问的话,这个svn就是http://127.0.0.1/svn/ynlx
这个url访问路径主要是由“<Location /svn/ynlx>” 控制
SVNParentPath /svn/ynlx 这个行主要是指明svn的版本库根目录位置。当然这个地址可以和url不同
AuthUserFile /svn/ynlx/passwd 指明了用户信息(用户名、密码)在/svn/ynlx/下的passwd 这个文件里
AuthUserFile /svn/ynlx/passwd AuthzSVNAccessFile /svn/ynlx/auth 指明了用户权限文件在 /svn/ynlx下
passwd文件可以通过 htpasswd 命令创建
注意:
开始创建用户时,要带上“-c”参数,标示创建新文件。
例如:
htpasswd -c /svnynlx/passwd zjb 创建一个新用户"zjb"
创建第2个用户时 htpasswd /svn/ynlx/passwd why
创建第3个用户时 htpasswd /svn/ynlx/passwd yyx
...依次类推
每次创建用户,都需要输入2次密码。输入时不会“回显”,要注意不要输入错误。
二、常用的auth配置文件编写方式
(1)组设置
通常情况下,我们用户是按【组(groups)】进行管理的。
因此,在创建好passwd文件的前提下,可以对用户进行分组
例如:
[groups]
admin=zjb,yyx,wlt,zmk
doc=xzl,wsh,wll
pm=wlt
guest=ynlx
dev=zjb
在这里设置了一个admin管理员组,doc文档组,pm项目经理组,guest访客组
(2)访问目录权限控制
例如:admin管理员组对整个版本库有最高权限(写+读)的权限
[/]
@admin=rw
例如doc组可以对根“/”目录下的document文档进行(写+读)操作,其它人可以(读)
[repos:/document]
*=r
@doc=rw
注意这里的repos是相对于你在建立版本库时指定的根为准
假设你是用下面的方法创建的版本库:
root@exnet:~# mkdir /svnynlx
root@exnet:~# mkdir /svn/ynlx/repos
root@exnet:~# svnadmin create /svn/ynlx/repos
例如要让pm产品经理对pro产品目录进行(写+读)操作,其它人禁止访问(读)
[repos:/pro]
@pm=rw
这样既可,这样的话其它人就不能访问了。
注意:
切记不要对
[/]
*=r
这样的话,根据继承的关系,你就无法做到对下面的子目录进行(读)取控制了。
最后关于“@”的说明,@表示是“组”
例如:
@admin 表示是“admin组”
admin表示是“admin用户”
例如,需要让dev组可以读写sdk目录,但是又需要wlt这个用户也具有相应的权限。
[repos:/sdk]
@dev=rw
wlt=r
访问控制权限还可以多级控制,只要修改[[repos:/sdk]]这里,安装目录树结构修改即可。
更多的技巧,大家可以自己多多尝试!
附注:
基于阿里云服务器搭建SVN服务器 http://blog.csdn.net/ex_net/article/details/8577784
SVN版本库(访问权限)配置实例笔记 http://blog.csdn.net/ex_net/article/details/8578297