Centos/ubuntu配置SVN服务

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

  

 

posted @ 2018-11-08 11:40  Chuyio  阅读(384)  评论(0编辑  收藏  举报