標籤:svn svnadmin admin
本文系統: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服務;
[[email protected] ~]# yum install ntsysv vim-enhanced subversion mod_perl gcc-c++ make unzip -y
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/44/wKioL1StN43SR00EAANx0Qfip7Q061.jpg" title="1.png" alt="wKioL1StN43SR00EAANx0Qfip7Q061.jpg" />
2、建立一個目錄用於儲存SVN所有檔案、建立版本倉庫
[[email protected] ~]# mkdir /opt/svn[[email protected] ~]# svnadmin create /opt/svn/svn
3、初始化版本倉庫中的目錄;
倉庫目錄結構說明:
[[email protected] ~]# mkdir svn svn/dev svn/qa svn/ops svn/pub svn/ops/web svn/ops/wap[[email protected] ~]# tree svnsvn├── dev #研發目錄├── ops #營運目錄│ ├── wap #工程目錄│ └── web├── pub #公用目錄└── qa #測試目錄6 directories, 0 files
匯入倉庫:
[[email protected] ~]# 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。[[email protected] ~]# rm -rf svn/
4、添加使用者
要添加SVN使用者非常簡單,只需在/opt/svn/svn/conf/passwd檔案添加一個形如“username=password”的條目就可以了。
[[email protected] conf]# pwd/opt/svn/svn/conf[[email protected] conf]# cat passwd |grep -v ^#[users]admin = admin #管理員dev = dev #研發測試帳號qa = qa ops = opszq = zq #普通個人帳號
5,修改使用者存取原則
/opt/svn/opt/conf/authz記錄使用者的存取原則,
[[email protected] conf]# cat authz[groups]g_admin = adming_dev = devg_qa = qag_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檔案,讓使用者和策略配置生效。
[[email protected] conf]# cat svnserve.conf[general]anon-access = noneauth-access = writepassword-db = /opt/svn/svn/conf/passwdauth-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服務
[[email protected] ~]# svnserve -d -r /opt/svn
8、測試服務
[[email protected] ~]# svn co svn://192.168.184.129/svn --no-auth-cache --username username --password passwd
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/51/wKiom1SuMNvQmCnEAAKXXo9jMRc301.jpg" title="a1.jpg" alt="wKiom1SuMNvQmCnEAAKXXo9jMRc301.jpg" />
測試提交
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/58/4E/wKioL1SuMsnwBdVCAAGKfHhGfis117.jpg" title="a2.jpg" alt="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
[[email protected] ~]# yum install mod_dav_svn -y
2、將svn的使用者配置轉換為http認證檔案
以下為一個小指令碼;方便轉換
[[email protected] conf]# pwd/opt/svn/svn/conf[[email protected] conf]# cat stoh.pluse 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 $_`;}}
進行轉換;
[[email protected] conf]# perl stoh.plAdding password for user adminAdding password for user devAdding password for user qaAdding password for user opsAdding password for user zq
3、修改httpd.conf,添加關於SVN伺服器的內容
[[email protected] conf]# vim /etc/httpd/conf/httpd.conf#add for svn<Location /svn>DAV svnSVNPath /opt/svn/svn/AuthType BasicAuthName "Authentication for svn"AuthUserFile /opt/svn/svn/conf/webpasswdAuthzSVNAccessFile /opt/svn/svn/conf/authzSatisfy allRequire valid-user</Location>
重啟服務
[[email protected] conf]# /etc/init.d/httpd restart
4、進行頁面測試;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/4E/wKioL1SuNkeBSCKeAAEPJcqNnG4284.jpg" style="float:none;" title="a3.jpg" alt="wKioL1SuNkeBSCKeAAEPJcqNnG4284.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/51/wKiom1SuNYbTnG08AAC4ZCos-5g315.jpg" style="float:none;" title="a4.jpg" alt="wKiom1SuNYbTnG08AAC4ZCos-5g315.jpg" />
切換帳號測試
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/58/4E/wKioL1SuNq7g0sWeAAFnkLDbeIE890.jpg" style="float:none;" title="a5.jpg" alt="wKioL1SuNq7g0sWeAAFnkLDbeIE890.jpg" />
本文出自 “大風” 部落格,請務必保留此出處http://lansgg.blog.51cto.com/5675165/1602593
Centos實現svn本地認證apache認證mysql認證