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

相关文章
|
4月前
|
Linux 网络安全 Apache
Centos下操作Apache httpd
Centos下操作Apache httpd
67 0
|
7月前
|
网络协议 Linux 应用服务中间件
2022红帽企业版网络配置--centos7配置DHCP DNS绑定域名 FTP HTTP(apache) nginx samba
2022红帽企业版网络配置--centos7配置DHCP DNS绑定域名 FTP HTTP(apache) nginx samba
147 0
|
Linux Shell 数据安全/隐私保护
CentOS 搭建SVN服务器
CentOS 搭建SVN服务器
408 0
CentOS 搭建SVN服务器
|
1月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
28 0
|
8月前
|
Linux Apache
Apache Doris集群模式快速体验之CentOS7安装(1)2
Apache Doris集群模式快速体验之CentOS7安装(1)2
117 0
|
4月前
|
网络安全 数据安全/隐私保护
Centos8下快速搭建SVN服务器
Centos8下快速搭建SVN服务器
87 0
|
4月前
|
中间件 Linux 网络安全
CentOS 7系统下Apache服务部署
对前篇博客(十七)进行一个修正与补充 基于不同的端口号,实现多虚拟主机部署并访问
41 0
|
关系型数据库 MySQL 应用服务中间件
Centos中查看nginx、apache、php、mysql配置文件路径
Centos中查看nginx、apache、php、mysql配置文件路径
2149 0
|
11月前
|
Linux 网络安全 Apache
怎么在CentOS 8上安装启用Apache服务器
怎么在CentOS 8上安装启用Apache服务器
187 0
|
Linux 网络安全 Apache
CentOS7 Apache安装配置SSL证书/https(腾讯云为例)
CentOS7 Apache安装配置SSL证书/https(腾讯云为例)
772 0
CentOS7 Apache安装配置SSL证书/https(腾讯云为例)