Centos/ubuntu配置SVN服务

Centos安装svn

1
yum -y install subversion

ubuntu安装svn

1
apt-get install subversion

Centos配置svn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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脚本:

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

添加开机启动

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

SVN启动控制脚本

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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

1
2
3
4
5
chmod +x ./svnd
mv ./svnd /etc/init.d/
chkconfig svnd --add
chkconfig svnd on
chkconfig svnd --list

  

 

posted @   Chuyio  阅读(387)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示