Centos实现svn本地认证apache认证

简介:

本文系统:Centos6.5_x64 本地lamp环境 ip:192.168.184.129

一、搭建svn,实现svn方式访问、本地用户认证

二、实现http方式访问、apache本地文件认证


subversion目录说明:
*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)


一、搭建svn服务;

1、搭建svn服务;

1
[root@Aries ~] # yum install ntsysv vim-enhanced subversion  mod_perl  gcc-c++ make unzip -y

wKioL1StN43SR00EAANx0Qfip7Q061.jpg

2、新建一个目录用于存储SVN所有文件、创建版本仓库

1
2
[root@Aries ~] # mkdir /opt/svn
[root@Aries ~] # svnadmin create /opt/svn/svn

3、初始化版本仓库中的目录;

仓库目录结构说明:

1
2
3
4
5
6
7
8
9
10
11
[root@Aries ~] # mkdir svn svn/dev svn/qa svn/ops svn/pub svn/ops/web svn/ops/wap
[root@Aries ~] # tree svn
svn
├── dev    #研发目录
├── ops    #运维目录
│   ├── wap   #工程目录
│   └── web
├── pub   #公共目录
└── qa    #测试目录
 
6 directories, 0 files

导入仓库:

1
2
3
4
5
6
7
8
9
10
[root@Aries ~] # svn import svn/ file:///opt/svn/svn/ -m "init svn repo"
增加           svn /ops
增加           svn /ops/wap
增加           svn /ops/web
增加           svn /qa
增加           svn /pub
增加           svn /dev
 
提交后的版本为 1。
[root@Aries ~] # rm -rf svn/


4、添加用户

要添加SVN用户非常简单,只需在/opt/svn/svn/conf/passwd文件添加一个形如“username=password”的条目就可以了。

1
2
3
4
5
6
7
8
9
10
[root@Aries conf] # pwd
/opt/svn/svn/conf
[root@Aries conf] # cat passwd  |grep -v ^#
 
[ users ]
admin = admin      #管理员
dev = dev          #研发测试账号
qa = qa 
ops = ops
zq = zq           #普通个人账号

5,修改用户访问策略
/opt/svn/opt/conf/authz记录用户的访问策略,

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
[root@Aries conf] # cat authz
 
[ groups ]
g_admin = admin
g_dev = dev
g_qa = qa
g_ops = ops,zq
 
[svn:/]
@g_admin = rw
* =
[svn: /dev ]
@g_admin = rw
@g_dev = rw
@g_qa = r
* =
[svn: /qa ]
@g_admin = rw
@g_qa = rw
@g_dev = r
@g_ops = r
* =
[svn: /ops ]
@g_admin = rw
@g_ops = rw
@g_qa = r
* =
[svn: /pub ]
@g_admin = rw
@g_ops = rw
@g_qa = rw
@g_dev = rw
* =

说明:以上信息表示,只有admin用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

6,修改svnserve.conf文件,让用户和策略配置生效。

1
2
3
4
5
6
7
[root@Aries conf] # cat svnserve.conf
[general]
anon-access = none
auth-access = write
password-db =  /opt/svn/svn/conf/passwd
auth-db =  /opt/svn/svn/conf/authz
[sasl]

anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none" 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read
auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write
password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf 目录的相对路径。缺省值:passwd
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。缺省值:authz

7、启动svn服务

1
[root@Aries ~] # svnserve -d -r /opt/svn

8、测试服务

1
[root@Aries ~] #  svn co svn://192.168.184.129/svn --no-auth-cache --username username --password passwd

wKiom1SuMNvQmCnEAAKXXo9jMRc301.jpg


测试提交

wKioL1SuMsnwBdVCAAGKfHhGfis117.jpg


二、实现http方式访问、apache本地文件认证

由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。

1、安装apache svn 集成依赖包,会产生两个so文件,

LoadModule dav_svn_module  modules/mod_dav_svn.so    
LoadModule authz_svn_module modules/mod_authz_svn.so
1
[root@Aries ~] # yum install mod_dav_svn -y

2、将svn的用户配置转换为http认证文件

以下为一个小脚本;方便转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@Aries conf] # pwd
/opt/svn/svn/conf
[root@Aries conf] # cat stoh.pl
use warnings;
use strict;
open  (FILE,  "passwd" ) or die ( "Cannot open the passwd file!!!n" );
 
open  (OUT_FILE,  ">webpasswd" ) or die ( "Cannot open the webpasswd file!!!n" );
close (OUT_FILE);
foreach (<FILE>) {
if ($_ =~ m/^[^ #].*=/) {
$_ =~ s/= // ;
`htpasswd -b webpasswd $_`;
}
}

进行转换;

1
2
3
4
5
6
[root@Aries conf] # perl stoh.pl
Adding password  for  user admin
Adding password  for  user dev
Adding password  for  user qa
Adding password  for  user ops
Adding password  for  user zq

3、修改httpd.conf,添加关于SVN服务器的内容

1
2
3
4
5
6
7
8
9
10
11
12
[root@Aries conf] # vim /etc/httpd/conf/httpd.conf
#add for svn
<Location  /svn >
DAV svn
SVNPath  /opt/svn/svn/
AuthType Basic
AuthName  "Authentication for svn"
AuthUserFile  /opt/svn/svn/conf/webpasswd
AuthzSVNAccessFile  /opt/svn/svn/conf/authz
Satisfy all
Require valid-user
< /Location >

重启服务

1
[root@Aries conf] # /etc/init.d/httpd restart

4、进行页面测试;

wKioL1SuNkeBSCKeAAEPJcqNnG4284.jpg

wKiom1SuNYbTnG08AAC4ZCos-5g315.jpg

切换账号测试

wKioL1SuNq7g0sWeAAFnkLDbeIE890.jpg



本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1602593

相关文章
|
3月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
355 1
|
5月前
|
安全 Linux 网络安全
如何在 CentOS 7 上为 Apache 创建 SSL 证书
如何在 CentOS 7 上为 Apache 创建 SSL 证书
89 0
|
3月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
63 1
|
3月前
|
Linux 数据安全/隐私保护 Windows
centos 7.2 搭建svn服务器
centos 7.2 搭建svn服务器
102 0
|
5月前
|
安全 Java 应用服务中间件
在CentOS 7上安装Apache Tomcat 8的方法
在CentOS 7上安装Apache Tomcat 8的方法
187 0
|
5月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
262 0
|
5月前
|
关系型数据库 MySQL Linux
在 CentOS 7 服务器上安装和保护 phpMyAdmin 与 Apache 的方法
在 CentOS 7 服务器上安装和保护 phpMyAdmin 与 Apache 的方法
92 0
|
8月前
|
Linux Apache
Centos7 安装Apache
安装Apache的步骤
117 6
|
8月前
|
运维 Apache 数据安全/隐私保护
CentOS6.5搭建SVN服务器(Apache+SVN)
CentOS6.5搭建SVN服务器(Apache+SVN)
|
1月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
343 33
The Past, Present and Future of Apache Flink