1 连接方式说明
svn提供的访问方式有:
file:///本地路径/to/svnrepo/ //访问本地磁盘
http://host/to/svnrepo/ //通过配置subversion的apache服务器的webDAV协议
https://host/to/svnrepo/ //与http相似,但是包括ssl加密
svn://host/to/svnrepo/ //通过subversion自定义的协议
svn+ssh://host/to/svnrepo/ //与svn相似,但通过SSH封装
2 认证方式说明
svnserve可以使用两种认证方式,一种是自身内置的认证,通过passwd文件配置授权的用户名和密码,配置较为简单,参考2.4.2节。另外一种是SSH认证,通过svn+ssh方式连接,配置较为复杂。
2.1 内置方式的配置
(1)修改/svn_project/hpss_monitor /conf/svnserve.conf文件,在general中加入以下几行:
anon-access = none // 未认证的用户没有任何访问权限
auth-access = write // 认证的用户有写权限
password-db = passwd // 认证文件为conf目录下的passwd 文件
(2)修改conf目录下的passwd 文件 :
在[users]节下添加用户名和密码,例如,用户名为a,密码为123,格式如下:
[users]
a = 123
2.2 ssh方式认证的配置
假设已经创建了工程/svn_project/hpss_monitor
注意:工程目录最好不要放在root目录下,例如/root/svn_project/hpss_monitor,因为通过ssh方式认证的一般用户没有root权限,无法访问root下的文件夹,除非主动降低root目录的访问级别。
1) 创建系统账户
useradd fify ; 添加fify用户
groupadd svn ; 添加svn用户组
usermod -a -G svn fify ; 将fify用户添加到svn用户组
2) 为用户组赋予权限
chown -R root:svn /svn_project/test
chmod -R g+rws /svn_project/test /*给svn组赋予读写权限,可以根据需要更改相应权限*/
chmod -R o-rwx /svn_project/test /*删除其他无关人员的读、写、执行权限,默认情况下可能其他人有读权限*/
3) 在工程中配置权限
修改/svn_project/test /conf/svnserve.conf文件,在general中加入以下几行:
anon-access = none // 未认证的用户没有任何访问权限
auth-access = write // 认证的用户有写权限
authz-db = authz // 认证文件为conf目录下的authz文件
修改/svn_project/test /conf/authz文件(如果没有则创建),在其中加入:
[/] // 访问权限为本资源的根目录(以及以下目录)
fify = rw // fify用户的访问权限为“读+写”
3 创建工程步骤说明
3.1 创建工程
执行命令:
#svnadmincreate /svn_project/test
其中,/svn_project/test 是单个工程目录,/svn_project是自定义的svn工程的根目录。其中根目录需系统中存在,工程目录test 由svnadmin创建。
命令完成之后,test 目录里会有多个文件夹和文件。
3.2 修改配置文件
根据认证方式作相应的配置,参考第2节。
3.3 开启服务
启动svn服务:
#svnserve-d -r /svn_project
其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接用“svn://服务器ip/工程项目名”来访问了。我所遇到的情况是访问路径必须写全路径,比如在此为“svn://服务器ip/svn_project/test ”