前言 {#前言}
本篇将讲解如何在Linux服务器上配置SVN仓库的目录权限、人员分组,全部配置都是通过命令在服务端完成。
配置教程 {#配置教程}
首先确保你在服务器上已经存在一个SVN的仓库了,我们定位到仓库的/conf目录,这里就是存放配置的地方,这个目录下的几个配置文件介绍如下:
authz
是权限配置文件,哪个目录有读写权限,设置什么分组,都是在这里配置
hooks-env.tmpl
是钩子环境变量配置文件的模版,我们暂时用不到,可以忽略
passwd
用来配置用户的帐号密码
svnserve.conf
是subversion的总配置,如果你需要登陆并且授权的用户才可以访问,则需要像我样配置这个文件:
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9
| [general] # 是否允许未登录的用户访问,none表示不允许 anon-access = none # 登陆后的权限,可写 auth-access = write # 密码配置文件名 password-db = passwd # 权限配置文件名 authz-db = authz
|
我们着重来看下authz
文件如何给每个用户配置不同目录的读写权限,一个经典的配置文件如下:
|------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 分组配置 [groups] admin = zhangsan developer = lisi,wangwu # 根目录的权限 [/] zhangsan = rw * = # 开发人员这个分组分配了/src目录权限 [/src] @developer = rw * =
|
这个配置文件分两类配置,一类是分配配置,第二类是路径权限配置。
[groups]
表示后面配置的是分组,我们可以把一些权限相同的用户都归为一个组,比如管理员admin
,开发人员developer
。多个成员要用英文逗号分隔开。
除了分组,其他的以中括号括起来的都表示这个仓库中的一个目录,甚至是可以一个文件名,因为SVN是可以支持文件级的权限配置的。
上面的配置,我们给zhangsan
分配了根目录/的读写权限rw
,除了rw
,还有只读r
,无权限(空)。
* =
是一个特殊的配置,表示除了上面配置的人,其他人都没有权限,这行配置需要放在每个路径配置的最后。
/src
目录我们给开发组的所有成员配置了读写权限,注意这里配置的是一个分组,需要以@
符号开头,这个分组你必须先在上面配置过,否则会报错找不到分组。
权限配置文件就是这么的简单,但是如果你管理的项目比较多,人员多,经常这样修改配置文件是非常危险的,可能稍微不留神就配置错了,从而导致整个仓库无法访问。