创建项目
[root@SVN svn]# svnadmin create herb
[root@SVN herb]# ll
总计 24
drwxr-xr-x 2 root root 4096 07-18 15:16 conf
drwxr-sr-x 6 root root 4096 07-18 15:15 db
-r--r--r-- 1 root root 2 07-18 15:03 format
drwxr-xr-x 2 root root 4096 07-18 15:03 hooks
drwxr-xr-x 2 root root 4096 07-18 15:03 locks
-rw-r--r-- 1 root root 229 07-18 15:03 README.txt
具体配置文件在conf, conf中有3个配置文件
passwd 用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz 用于存放本svn库的访问授权信息。
SVNserve.conf 用于存放本svn库的全局访问控制信息
最重要的是authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
例如在一个项目herb中,我们可以修改其3个配置文件
(1.修改全局设置)
[root@SVN conf]# vi svnserve.conf
[general]
anon-access = none ###(none:不允许匿名用户访问)
auth-access = write
password-db = passwd (指定passwd的路径,此处在当前目录)
authz-db = authz (指定authz的路径,此处在当前目录)
(2.修改权限设置)
方式一
直接添加用户,给予读写权限:
[herb:/]
herb = rw
方式二
建立组,组中包括herb用户,然后直接给予组授予权限
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = herb
[herb:/]
@admin = rw
(3.passwd设置)
[root@SVN svnconf]# vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
herb = herb
此处就完成了herb用户对项目herb的设置,注:格式如下
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为G:\SVNRoot。这样,/就是表示对全部版本库设置权限。
herb:/,表示对版本库1设置权限
herb:/hbi, ,表示对版本库1中的hb目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限
那么如果是多项目的统一权限设置,则直接将项目中的authz和passwd配置指向统一地方即可
例如
现在有两个项目 herb和haibo 那么现在只需要在其项目的conf配置中修改到对应的位置
如在/etc下创建一目录svnconf 然后将其项目下的authz和passwd拷贝至其目录下
然后修改svnserve.conf 即可!
anon-access = none
##(none:不允许匿名用户访问)
auth-access = write
password-db = /etc/svnconf/passwd
authz-db = /etc/svnconf/authz
(passwd与authz的配置如上)
到此设置完成!
补充:
在svnserve.conf中进行了这样的设置:
anon-access = none
auth-access = write
如果,anon-access = read,需要在在authz文件中加上:
[/]
* = r
否则在使用SVN进行Checkout时出现错误提示:无权打开根进行编辑操作。。
评论