技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類(lèi) >

Linux系統(tǒng)中SVN安裝、權(quán)限管理

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2019-03-30 12:08┆點(diǎn)擊:

  SVN服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache運(yùn)行。

  svnserve和apache相比是輕量級(jí)的,也比較簡(jiǎn)單,svnserve包含在subversion里面,所以只要安裝了subversion就相當(dāng)于安裝了一個(gè)小型的svn服務(wù)器。它使用自己的一套協(xié)議通信。例如訪問(wèn)apache時(shí)使用 前綴,而svnserve使用 svn:// 前綴.

  這里介紹的是通過(guò)獨(dú)立服務(wù)器方式運(yùn)行,優(yōu)點(diǎn)是簡(jiǎn)單小巧。如果是支持較大規(guī)模的開(kāi)發(fā),還是推薦使用apache服務(wù)器方式;這里使用svnserver安裝;

  1.首先為SVN單獨(dú)創(chuàng)建一個(gè)用戶(hù),這樣可以使用操作系統(tǒng)的安全特性;

  2.將svnadmin這個(gè)用戶(hù)加入到sudu組;

  3.安裝:

  sudo apt-get install subversion

  4.創(chuàng)建測(cè)試目錄:

  mkdir /home/svnadmin/test

  5.創(chuàng)建版本庫(kù):

  svnadmin create /home/svnadmin/test

  4. 導(dǎo)入項(xiàng)目

  例如現(xiàn)在有個(gè)工程,名稱(chēng)為examPro,

  位置/alidata/www/examPro , 將這個(gè)工程導(dǎo)入到本地倉(cāng)庫(kù)中。

  svn import /alidata/www/examPro file:///home/svnadmin/examPro -m "import examPro"

  在上一個(gè)例子里,將會(huì)拷貝目錄examPro到版本庫(kù)中;

  這樣這個(gè)工程就在納入服務(wù)器的本地倉(cāng)庫(kù)管理。

  為了使用SVN的同步更新機(jī)制,我們需要在svn服務(wù)器環(huán)境上簽出一份最新工程拷貝(為表述方便,這里稱(chēng)為A目錄)。

  $ svn checkout file:///home/svnadmin/examPro

  在這個(gè)拷貝里,我們一般不做修改,而是用來(lái)同步更新;當(dāng)開(kāi)發(fā)機(jī)器上有任何修改,更新到SVN服務(wù)器上時(shí),能同步更新到A目錄;這樣,就能保證A目錄下的代碼是整個(gè)工程的最新代碼,而使用A目錄搭建的WEB測(cè)試環(huán)境,就是最新的WEB測(cè)試環(huán)境;

  5.啟動(dòng)SVN服務(wù)

  $ svnserve -d -r /home/svnadmin/examPro

  描述說(shuō)明:

  -d 表示svnserver以“守護(hù)”進(jìn)程模式運(yùn)行

  -r 指定文件系統(tǒng)的根位置(版本庫(kù)的根目錄),這樣客戶(hù)端不用輸入全路徑,就可以訪問(wèn)版本庫(kù)。

  6.停止svn服務(wù):

  killall svnserve //停止svnserve服務(wù)

  SVN權(quán)限管理

  1.SVN版本庫(kù)目錄說(shuō)明

  db:存放具體數(shù)據(jù);

  hooks:鉤子程序存放地,比如我們要實(shí)現(xiàn)同步更新的操作,在這里實(shí)現(xiàn);

  conf:配置文件存放地

  下面具體說(shuō)說(shuō)conf目錄;

  conf目錄下有三個(gè)文件:

  svnserve.conf、authz、以及passwd;

  2.SVN服務(wù)配置文件:svnserve.conf

  查看該文件,首先是匿名用戶(hù)的權(quán)限配置:

  anon-access = none

  auth-access = write

  表示:對(duì)于匿名用戶(hù),無(wú)訪問(wèn)權(quán)限;

  對(duì)于授權(quán)用戶(hù),有寫(xiě)權(quán)限;

  接下來(lái)的一段用于配置使用哪種授權(quán)登錄方式;

  可選的有password-db ,就是用戶(hù)名和密碼都是明文存放在同級(jí)目錄下的passwd文件中;優(yōu)點(diǎn)是高效配置簡(jiǎn)單,缺點(diǎn)是安全性弱,明文總不是那么讓人感覺(jué)可靠;

  另一種是authz-db,這種方式的用戶(hù)密碼使用了sasl加密,安全上有保證;

  選擇這種方式的設(shè)置,將password-db 注釋掉:

  # password-db = passwd

  authz-db = authz

  #指定授權(quán)所屬的域,C++的同志可將其理解為名字空間;

  realm = examPro

  接下來(lái)是[sasl]段,用于標(biāo)識(shí)是否進(jìn)行SASL加密處理;

  use-sasl = true

  min-encryption = 128

  max-encryption = 256

  變量 min-encryption 和 max-encryption 控制服務(wù)器所需要的加密強(qiáng)度。

  3. 詳細(xì)權(quán)限配置文件authz:

  這個(gè)就是授權(quán)數(shù)據(jù)庫(kù),用于配置指定目錄對(duì)用戶(hù)的訪問(wèn)權(quán)限;

  首先是指定一個(gè)用戶(hù)組,按組來(lái)分配權(quán)限總是方便的,即使目前你的團(tuán)隊(duì)一個(gè)組只有一個(gè)人。在新加入成員的時(shí)候,你就能體會(huì)到按組分配權(quán)限的便利性了;

  [groups]

  g_fronter=cuicc,gdii

  g_vip=coo

  g_doc=yhh

  [examPro:/]

  @g_vip=rw

  @g_fronter=r

  @g_doc=r

  [examPro:/protected/modules]

  @g_vip=rw

  @g_fronter=

  *=

  [examPro:/protected]

  @g_doc=

  對(duì)于以上代碼的配置的詳細(xì)說(shuō)明,可以參考本文的參考文章[1]SVN權(quán)限配置,里面介紹的比較詳細(xì),這里就不多說(shuō),有疑問(wèn)的請(qǐng)留言或mail;

  SVN使用SASL加密

  1.配置svnserve.conf,注釋掉password-db = passwd

  并啟用sqsl:use-sasl = true

  2.新建一個(gè)svn.conf文件,一般放在/usr/lib/sasl2或者/etc/sasl2,內(nèi)容為:

  pwcheck_method: auxprop

  auxprop_plugin: sasldb

  sasldb_path: /home/svnadmin/config/sasldb

  mech_list: DIGEST-MD5

  其中sasldb_path 指定你打算將sasl加密的數(shù)據(jù)庫(kù)放置的位置;