svn 服务器采用 http 方式登录

系统是 centos7,需要先搭建好 svn 服务器,可以参考 centos7 搭建 svn 服务器
采用 http 方式登录可以加密密码,不用直接明文显示。。。

1 搭建 http 服务器

1.1 安装 httpd
$ yum install httpd

设置开机启动
$ chkconfig httpd on

启动 httpd
$ service httpd start

1.2 安装辅助服务
$ yum install mod_dav_svn mod_auth_mysql

2 修改配置文件

2.1 创建版本库的 http 授权目录
我的版本库路径是:/home/svn/general,默认的 passwd 和 authz 文件放在 /home/svn/general/conf 目录,建议把 http 授权目录也放这里,方便管理。

1)新建 http 授权目录
$ cd /home/svn/general/conf
$ mkdir http-auth && cd http-auth

2)创建 passwd 文件,保存账号信息,使用 htpasswd 生成
$ htpasswd -c /home/svn/general/conf/http-auth/passwd lk
根据提示设置 lk 账号的密码就可以了,htpasswd 的参数如下:
-c:创建 passwd 文件,如果文件存在则清空文件内容;
-n:不写入 passwd 文件,直接显示加密后的密码;
-m:使用 MD5 加密(默认);
-d:使用 CRYPT 加密;
-s:使用 SHA 加密;
-p:使用普通文本格式(明文存储,不加密);
-b:命令行中在 用户名 空格后接上 密码 ,不需要交互;
-D:删除指定用户

3)设置用户权限控制文件
$ vim authz
内容:

[groups]
admin = lk
front = user1, user2
test = user3

[/]
@admin = rw

[/front]
@front = rw
@test = r

[/test]
user3 = rw

[groups]:分组,如 front 分组有用户 user1 和用户 user2
[/]: svn 根目录
@admin: 表示 admin 组的所有成员
rw: 读写权限

2.2 修改 svn 配置文件
$ vim /home/svn/general/conf/svnserve.conf
指定 passwd 文件和 authz 文件的路径

password-db = /home/svn/general/conf/http-auth/passwd
authz-db = /home/svn/general/conf/http-auth/authz

2.3 修改 httpd 配置文件
$ vim /etc/httpd/conf/httpd.conf
在文件最后面添加以下内容:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
	DAV svn
	SVNListParentPath on
	#SVNParentPath /home/svn/general
	SVNPath /home/svn/general
	AuthType Basic
	Satisfy Any
	AuthName "Subversion repos"
	AuthUserFile /home/svn/general/conf/http-auth/passwd
	AuthzSVNAccessFile /home/svn/general/conf/http-auth/authz
	Require valid-user
</Location>

说明:
SVNPath:是版本库目录,多个版本库时使用 SVNParentPath ;
AuthUserFile:用户认证文件,填 passwd 文件的路径;
AuthzSVNAccessFile: 权限文件,填 authz 文件的路径;
Require :用户访问是否需要验证;

2.4 Apache 用户添加 svn 仓库的写权限
1)把 Apache 用户加入 root 组
$ usermod -a -G root apache

2)组内成员添加写权限
$ chmod -R g+w /home/svn

3)重启服务
$ service httpd restart
$ service svnserve restart

如果 svn 重启失败,直接把进程 kill 掉重新启动。

2.5 测试
建立一个目录,checkout 版本库
$ mkdir svnbase
$ cd svnbase

checkout 版本库
$ svn checkout http://[ip]:[port]/[path] ./ --username lk
ip:svn 服务器的 ip;
port:版本库的端口;
path:checkout 文件的路径,不写则 checkout 整个版本库;
lk:用户名;

可以把文件拉到本地就成功了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值