溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證

發(fā)布時間:2020-07-21 03:08:03 來源:網(wǎng)絡(luò) 閱讀:6750 作者:西索oO 欄目:軟件技術(shù)

本文系統(tǒng):Centos6.5_x64 本地lamp環(huán)境 ip:192.168.184.129

一、搭建svn,實現(xiàn)svn方式訪問、本地用戶認(rèn)證

二、實現(xiàn)http方式訪問、apache本地文件認(rèn)證


subversion目錄說明:
*dav目錄:是提供apache與mod_dav_svn使用的目錄,讓他們存儲內(nèi)部數(shù)據(jù)
*db目錄:就是所有版本控制的數(shù)據(jù)存放文件
*hooks目錄:放置hook腳本文件的目錄
*locks目錄:用來放置subversion見艱苦鎖定數(shù)據(jù)的目錄,用來追蹤存取文件庫的客戶端
*format文件:是一個文本文件,里面只放了一個整數(shù)。表示當(dāng)前文件庫配置的版本號
*conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權(quán)限等)


一、搭建svn服務(wù);

1、搭建svn服務(wù);

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

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證

2、新建一個目錄用于存儲SVN所有文件、創(chuàng)建版本倉庫

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

3、初始化版本倉庫中的目錄;

倉庫目錄結(jié)構(gòu)說明:

[root@Aries ~]# mkdir svn svn/dev svn/qa svn/ops svn/pub svn/ops/web svn/ops/wap
[root@Aries ~]# tree svn
svn
├── dev   #研發(fā)目錄
├── ops   #運(yùn)維目錄
│   ├── wap  #工程目錄
│   └── web
├── pub  #公共目錄
└── qa   #測試目錄

6 directories, 0 files

導(dǎo)入倉庫:

[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”的條目就可以了。

[root@Aries conf]# pwd
/opt/svn/svn/conf
[root@Aries conf]# cat passwd  |grep -v ^#

[users]
admin = admin     #管理員
dev = dev         #研發(fā)測試賬號
qa = qa 
ops = ops
zq = zq          #普通個人賬號

5,修改用戶訪問策略
/opt/svn/opt/conf/authz記錄用戶的訪問策略,

[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用戶組有根目錄的讀寫權(quán)。r表示對該目錄有讀權(quán)限,w表示對該目錄有寫權(quán)限,rw表示對該目錄有讀寫權(quán)限。最后一行的* =表示,除了上面設(shè)置了權(quán)限的用戶組之外,其他任何人都被禁止訪問本目錄。這個很重要,一定要加上!

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

[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 控制非鑒權(quán)用戶訪問版本庫的權(quán)限。取值范圍為"write"、"read"和"none" 即"write"為可讀可寫,"read"為只讀,"none"表示無訪問權(quán)限。 缺省值:read
auth-access 控制鑒權(quán)用戶訪問版本庫的權(quán)限。取值范圍為"write"、"read"和"none"。 即"write"為可讀可寫,"read"為只讀,"none"表示無訪問權(quán)限。 缺省值:write
password-db 指定用戶名口令文件名。除非指定絕對路徑,否則文件位置為相對conf 目錄的相對路徑。缺省值:passwd
authz-db 指定權(quán)限配置文件名,通過該文件可以實現(xiàn)以路徑為基礎(chǔ)的訪問控制。除非指定絕對路徑,否則文件位置為相對conf目錄的相對路徑。缺省值:authz

7、啟動svn服務(wù)

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

8、測試服務(wù)

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

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證


測試提交

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證


二、實現(xiàn)http方式訪問、apache本地文件認(rèn)證

由于SVN服務(wù)器的密碼是明文的,HTTP服務(wù)器不與支持,所以需要轉(zhuǎn)換成HTTP支持的格式。

1、安裝apache svn 集成依賴包,會產(chǎn)生兩個so文件,

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

2、將svn的用戶配置轉(zhuǎn)換為http認(rèn)證文件

以下為一個小腳本;方便轉(zhuǎn)換

[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 $_`;
}
}

進(jìn)行轉(zhuǎn)換;

[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,添加關(guān)于SVN服務(wù)器的內(nèi)容

[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>

重啟服務(wù)

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

4、進(jìn)行頁面測試;

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證

切換賬號測試

Centos實現(xiàn)svn本地認(rèn)證apache認(rèn)證



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI