Centos/ubuntu配置SVN服务

时间:2024-01-15 14:17:50

Centos安装svn

yum -y install subversion

ubuntu安装svn

apt-get install subversion

Centos配置svn

root@hello:~# mkdir -p /svn/svn1
root@hello:~# svnadmin create /svn/svn1/
root@hello:~# cd /svn/svn1/conf/
root@hello:/svn/svn1/conf# ls
authz passwd svnserve.conf
root@hello:/svn/svn1/conf# vim passwd 编辑passwd,在【users】下添加用户名和密码 ### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line. [users]
# harry = harryssecret
# sally = sallyssecret
Test = 123456 root@hello:/svn/svn1/conf# vim authz [aliases] #别名,一般不做配置
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups]
# harry_and_sally = harry,sally 释:用户组为harry_and_sally,组内有harry和sally用户
# harry_sally_and_joe = harry,sally,&joe # [/foo/bar] 表示/foo/bar下的所有资源
# harry = rw harry 拥有读写权限
# &joe = r
# * = 设置其他用户具有的权限 # [repository:/baz/fuz] 表示repository下的/baz/fuz下的所有资源
# @harry_and_sally = rw 设置harry_and_sally用户组为读写权限
# * = r
[svn1:/] 表示svn1下的所有资源
Test = rw 用户Test 权限为读写 root@hello:/svn/svn1/conf# vim svnserve.conf [general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none #匿名访问的权限,可以是read,write,none,默认为read
auth-access = write #使授权用户有写的权限
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd #密码数据库的路径
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz #访问控制文件
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
realm = SVN1 #认证空间名,SVN会在认证提示里显示,并且作为凭证缓存的关键字 [sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true 开启sasl用户验证
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256

ubuntu配置svn

root@hello:/svn/svn1/conf# pwd
/svn/svn1/conf
root@hello:/svn/svn1/conf# ls
authz hooks-env.tmpl passwd svnserve.conf root@hello:/svn/svn1/conf# vim passwd [users]
Test = 123456 root@hello:/svn/svn1/conf# vim authz [aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] [svn1:/]
Test = rw root@hello:/svn/svn1/conf# vim svnserve.conf [general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
# groups-db = groups 指定“group file”的位置,而该目录下并没有groups文件,因此该配置不能被启用!
realm = svn1
# force-username-case = none
# hooks-env = hooks-env [sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256

开机自动启动SVN脚本:

#!/bin/bash
PatH=`/svn/svn1`
SvN=`which svnserve`
$SvN -d -r $PatH

添加开机启动

echo "bash /脚本绝对路径/脚本名" >> /etc/rc.d/rc.local

SVN启动控制脚本

根据实际情况进行修改 路径等信息

#!/bin/bash
#chkconfig: 345 95 95
#description: svn
stop(){
kill $(ps -ef | grep "svnserve -d -r" | grep -v grep | awk '{print $2}') > /dev/null 2>&1
if [ ! $? -eq 0 ]
then
echo "stop ERROR..."
fi
}
start(){
svnserve -d -r /svn/ > /dev/null 2>&1
if [ ! $? -eq 0 ]
then
echo "start ERROR..."
fi
}
restart(){
stop
start
}
case $1 in
stop)
stop
;;
start)
start
;;
restart)
restart
;;
*)
echo "please INPUT stop|start|restart"
exit 110
;;
esac

添加到系统服务(仅针对centos6.x系统)

将上面脚本命名为svnd

chmod +x ./svnd
mv ./svnd /etc/init.d/
chkconfig svnd --add
chkconfig svnd on
chkconfig svnd --list