新聞中心
Subversion(SVN)是一個版本控制和文件管理系統(tǒng),它可以幫助團隊協(xié)作管理代碼庫的版本。SVN不僅可以控制代碼的版本,還可以控制訪問權(quán)限,防止非授權(quán)人員訪問和修改代碼。這就是 SVN Authz 配置文件的作用。在 Linux 系統(tǒng)中,用戶可以使用 SVN Authz 配置文件精確控制 SVN 倉庫中的用戶權(quán)限。本文將深入剖析 SVN Authz 配置文件的原理,并介紹如何配置 SVN Authz 文件。

一、Authz 文件基礎(chǔ)知識
1.1 Authz 配置文件簡介
Authz 配置文件是 SVN 倉庫保護機制的一部分,通過 authz 文件,管理員可以控制 SVN 倉庫中不同用戶和組的訪問權(quán)限。一個完整的 SVN 倉庫映射至一個配置文件,管理員可以在該文件中配置哪些用戶或組有權(quán)訪問 SVN 倉庫中的哪些路徑。Authz 配置文件選擇文本格式,例如 .ini 文件或 .conf 文件。
1.2 Authz 文件的工作原理
當(dāng) SVN 服務(wù)器接受一個客戶端用戶的訪問請求時,服務(wù)器根據(jù) authz 文件中的定義檢查該用戶是否有足夠的權(quán)限來讀取或修改倉庫的特定目錄或文件。SVN 服務(wù)器使用 authz 文件來確保只有授權(quán)用戶才能訪問倉庫。
二、配置 Authz 文件
2.1 文件格式
Authz 文件的格式包含兩類配置信息,分別是訪問規(guī)則和用戶/組說明。其中,訪問規(guī)則是用來確定哪個用戶或組可以訪問倉庫中的哪個路徑。用戶/組說明用于說明不同用戶和組的身份。
2.2 配置示例
一個簡單的 Authz 文件結(jié)構(gòu)示例如下:
“`
[groups]
project1_team = Tom, Bill, Loka, Marry
[/]
* =
project1_team = r
@admin = rw
[/trunk]
* =
project1_team = rw
@admin = rw
[/branches]
* =
project1_team = r
@admin = rw
[/tags]
* =
project1_team = r
@admin = rw
“`
在上面的示例配置中,groups (用戶/組說明)部分定義了一個名為 project1_team 的組,組成員為 Tom、Bill、Loka 和 Marry。其中,方括號 [ ] 用于定義訪問規(guī)則。 [/] 表示訪問整個 SVN 倉庫,[trunk] 表示倉庫的主干,[branches] 表示分支,[tags] 表示標(biāo)簽。
對于每個路徑,* 表示匹配所有用戶,@admin 表示管理員組。r 表示只讀權(quán)限,rw 表示讀寫權(quán)限。在上面的示例中,任何用戶或組都有權(quán)讀取所有的路徑。project1_team 組有權(quán)讀取主干和分支路徑,而管理員組有權(quán)讀取和寫入整個倉庫。
2.3 訪問規(guī)則
在定義訪問規(guī)則時,需要使用路徑和訪問控制標(biāo)識符。路徑是 SVN 倉庫中的一個目錄或文件路徑。而訪問控制標(biāo)識符則決定了訪問者對該路徑的訪問權(quán)限。
以下是一些常見的標(biāo)識符:
– * —— 匹配所有用戶。
– @group_name —— 匹配特定的組。
– username —— 匹配特定的用戶。
2.4 用戶/組說明
在 authz 文件中定義用戶和組的方式如下:
“`
[groups]
project1_team = Tom, Bill, Loka, Marry
“`
其中,groups 部分聲明了一個組名為 project1_team,組成員包括 Tom、Bill、Loka 和 Marry。這里的組名和組成員都是自定義的,可以根據(jù)實際情況修改。
三、
在本文中,我們深入理解了 Linux SVN 服務(wù)器上的 Authz 配置文件,以及它的工作原理和基本配置。掌握 Authz 文件的配置和使用,可以更好地管理和保護 SVN 倉庫,確保項目的安全和可靠性。在實際應(yīng)用中,管理員可以根據(jù)需要選擇不同的文件格式和配置方式,靈活控制 SVN 倉庫的訪問權(quán)限,確保團隊合作高效穩(wěn)定。
相關(guān)問題拓展閱讀:
- 在linux下安裝SVN+Apache時,出現(xiàn) you don’t have permission to access/svn on this server 問題
- 如何如何才linux環(huán)境下使用apache和svn進行集成
在linux下安裝SVN+Apache時,出現(xiàn) you don’t have permission to access/svn on this server 問題
data/svn/authz.cong文件中是否有給test賬號賦權(quán)限呢?
驗證用戶的文件你是建襲返讓了,貌似svn倉庫你還沒有建吧,如拍局果已經(jīng)有倉庫了,檢查世彎下權(quán)限文件/data/svn/authz.cong寫錯沒有。。
chown apache:apache -R /data/svn
不知道你的svnroot目錄下是否已經(jīng)有了svn內(nèi)容了還有就是你的碼納燃svn配茄兆置中/是否允許被訪問遲虛也要看一下呢
如何如何才linux環(huán)境下使用apache和svn進行集成
步驟方法:
一 準(zhǔn)備需要的安裝包。
(1)下載 apache 。通過官網(wǎng)下載,使用了版本 : httpd-2.2.23.tar.gz
(2) 下載Subverson 。建議百度搜索下載。
二 安裝
安裝順序有要求, 先安裝Apache ,再安裝Subversion 。
1 安裝apache
把安裝壓縮包上傳linux環(huán)境/usr/local/下面。
# cd /usr/local/
# tar zxfhttpd-2.2.23.tar.gz
# cd /usr/local/httpd-2.2.23
# configure -prefix=/usr/local/apache -enable-dav -enable-so && make && make install
2 啟動apache, 安裝無錯誤后 進入
#cd /usr/local/apache/bin
# ./apachectl start
若提示啟動失敗,端口口被占用: #vi /usr/local/apche/conf/http.conf
找到
#Listen 12.34.56.78:80
Listen 80
將80修改為自己的端口好。我修改為81 Listen若啟動成功,不用修改端口號。
重啟apache ,客戶端輸入地址
(端口號為81) 或
(端口號默認(rèn)80)
頁面展示
It works! 字樣 ,表示安裝成功。
3 安裝Svn
把安裝壓縮包和拷到linux環(huán)境野并/usr/local/下面。
# cd /usr/local/
# tar zxf subversion-1.6.12.tar.gz
# tar zxf subversion-deps-1.6.12.tar.gz
(安裝包解壓縮,解壓縮后生成安裝文件芹兆夾,兩個文件都會解壓縮到同一個文件夾下)
# cd /usr/local/subversion-1.6.12
# rm -rf apr
# rm -rf apr-util(刪除subversion自帶的apr和apr-util文件夾,用apache的就可以)
# cd /usr/local/subversion-1.6.12
#
./configure -prefix=/usr/local/subversion -with-apxs=/usr/local/apache/bin/頌首跡apxs -with-apr=/usr/local/apache/bin/apr-1-config -with-apr-util=/usr/local/apache/bin/apu-1-config
#
make
#
make install
# svnserve –version
— 安裝到此,沒有出現(xiàn)任何錯誤。但是 執(zhí)行#svnserve
–version 顯示的版本不是1.6的,而是1.4(老版本)說明之前安裝過舊版本的svn。
解決辦法#vi
/etc/profile
在最后填加
#set svnpath
export PATH=/usr/local/subversion1.6/bin:$PATH
export PATH
保存退出。
執(zhí)行 #scource /ect/profile
重新執(zhí)行 #svnserve –version –ok
4 檢查svn是否與apache兼容
# vi /usr/local/apache/conf/httpd.conf
查找文件中是否增加了
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
兩行信息,并且查看/usr/local/apache/modules 下是否有mod_dav_svn.so,
和mod_authz_svn.so 文件
如果http.conf 中沒有增加代碼。modules 下有mod_dav_svn.so,
和mod_authz_svn.so
文件,再http.conf中增加那兩行代碼。
如果沒有mod_dav_svn.so,
和mod_authz_svn.so,svn安裝的錯誤。按照步驟重裝。
配置 svn+apache
1 創(chuàng)建svn庫
(1) 創(chuàng)建 svn專用戶 # useradd pocsvn
(2) 創(chuàng)建SVN 版本庫目錄 #mkdir /home/pocsvn/project
(3) 創(chuàng)建SVN倉庫 # svnadmin create /home/pocsvn/project/poc
(4) 將目錄 project 目錄擁有者修改為 pocsvn 用戶 :
#chown -R pocsvn:pocsvn /home/pocsvn/project
并 增加權(quán)限 chmod 755 /home/pocsvn/project
2 配置svn 依賴apache
(1) 使用root用戶 # vi /usr/local/apache/conf/httpd.conf 將
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
前的注釋去掉(我安裝時這兩行沒有注釋。網(wǎng)上查有人說這兩行會有注釋。有的話去掉注釋)
(2 )找到
User apache
Group apache
修改為
User pocsvn
Group pocsvn
(3) 在文件末尾添加
DAV svn
SVNParentPath /home/pocsvn/projectsvn庫的根目錄
AuthType Basic
AuthName “welcome to cjybt”瀏覽器登陸時的提示信息。隨便寫
AuthUserFile /home/pocsvn/project/passwd
— 用戶的密碼信息
AuthzSVNAccessFile /home/pocsvn/project/poc/conf/authz
— 指向svn庫的conf目錄下authz
Require valid-user
— (”Require valid-user”告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,則只能之一個用戶可以訪問新建庫)
(4) 生成passwd文件
#htpasswd -bc /home/pocsvn/project/passwd hello hello123
—在/home/pocsvn/project/下生成passwd文件,用戶名為hello,密碼為hello123
#htpasswd -b /home/pocsvn/project/passwd hello2 hello123
—在/home/pocsvn/project/passwd文件中添加用戶名為hello,密碼為hello123
(5) 編輯用戶權(quán)限文件 authz
#vi /home/pocsvn/project/poc/conf/authz
表示群組設(shè)置
admin = hello –表示admin群組里的成員有hello,如果要配置多個,用逗號分隔
develop = hello2 –表示develop群組里的成員有hello2,如果要配置多個,用逗號分隔
表示倉庫poc的根目錄下的訪問權(quán)限
hello = rwpoc倉庫hello用戶具有讀和寫權(quán)限
hello2 = rpoc倉庫hello2用戶具有只讀權(quán)限
@admin = rw –表示群admin的成員都具有讀寫權(quán)限
@develop = r –表示群poc的成員都具有只讀權(quán)限
表示在所有倉庫的根目錄下
* = r表示對所有的用戶都具有讀權(quán)限
— 在編輯authz時,所有行都必須要頂頭寫,不能有縮進,否則報錯。
(5)修改權(quán)限
chmod 755 /home/pocsvn/project/passwd
chown -R pocsvn:pocsvn /home/pocsvn/project/passwd
(6)啟動svn
切換到pocsvn用戶 #svnserve -d –listen-portr /home/pocsvn/project
-d 表示以 daemon 方式(后臺運行)運行
-r 指定根目錄是/home/pocsvn/project
–listen-port表示在8888端口上進行監(jiān)聽
檢查svn其否啟動
ps -ef|grep svnserve 或 ps -ef|grep 8888
(7)重啟apache,切換回root用戶。啟動apache
(8) 客戶端 訪問 : 出現(xiàn)登陸窗口則為配置成功。
–如果登陸后提示403或無法訪問。為權(quán)限配置不對,重新配置下權(quán)限即可。
至此,svn和apache結(jié)合的svn配置就搭建好了。
在安裝的過程中出現(xiàn)的問題總結(jié)如下:
1 啟動apache 報錯httpd: Syntax error on line 111 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so
into server: /usr/local/subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_hash_clear
解決辦法:重新安裝apache,注意增加參數(shù)
命令 # ./configure –prefix=/usr/local/apache2/ –enable-dav –enable-so
–enable-dav –enable-so參數(shù)是必須要加的,你還可以根據(jù)您的需要添加其他的參數(shù)。
–enable-dav 啟用davweb支持,是subversion+apache組合必選,缺少的話,在運行apache會出現(xiàn)undefined symbol: dav_register_provider的錯誤
–apr 和 apr-util一般會在httpd的安裝包內(nèi),subversion安裝會使用到apr和par-util,如果當(dāng)前系統(tǒng)沒有,更好安裝一下
2 重轉(zhuǎn)apache后。必須重裝subversion,重裝svn是執(zhí)行make ,make install 是提示有錯誤信息。
可以先執(zhí)行# make clean ,然后在 #make ,#make install
更好一次裝好,重裝的話問題不少。
3 apr 和apr-util有問題。
網(wǎng)上資料在svn和apache集成的時候是有分開裝apr,和apr-util的,這兩個在apache中就有了。刪除原來的。
# rpm -qa|grep subversion
subversion-1.4.4.el5
# rpm -e –allmatches subversion
# rpm -qa|grep apr
apr-1.2.7-11
apr-util-1.2.7-7.el5
apr-1.2.7-11
apr-util-1.2.7-7.el5
# rpm -e –allmatches apr-util
# rpm -e –allmatches apr
# echo ‘/usr/local/APR/lib’>>/etc/ld.so.conf
# echo ‘/usr/local/ARP-util/lib’>>/etc/ld.so.conf
# ldconfig
安裝apache
1、已root用戶登陸centos
Connecting to 192.168.1.133:22…
Connection established.
Escape character is ‘^@>’.
Last login: Sat Feb 25 13:10:
#
2、創(chuàng)建并切換到下載文件存放目錄:
# mkdir /soft && cd /soft
3、下載httpd-2.2.22.tar.gz
# wget
4、解壓下載下來的 apache 包
# tar -xzvf httpd-2.2.22.tar.gz
5、進入解壓后的文件夾
# cd httpd-2.2.22
#
6、對apache進行檢查及配置 :
# ./configure –prefix=/usr/local/apache2 –enable-dav –enable-so –enable-modules=most
7、編譯謹(jǐn)賣禪并安裝apache
# make && make install
安裝apache功能支持庫文件apr
1、 進入下載文件存放目錄:
# cd /soft/
2、 下載apr
# wget
3、 解壓下載下來的apr-1.4.6.tar.gz
# tar -xzvf apr-1.4.6.tar.gz
4、 進入解壓后配櫻的目錄;
# cd apr-1.4.6
5、 配置、編譯、安裝:
# ./configure && make && make install
安裝apache功能支持庫文件apr-util
1、 進入下載文件存放目祥塵錄:
# cd /soft
2、下載apr-util
# wget
3、解壓下載下來的apr-util-1.4.1.tar.gz
# tar -xzvf apr-util-1.4.1.tar.gz
4、進入解壓后的目錄;
# cd apr-util-1.4.1
6、 安裝配置,需要指定apr的安裝位置:
# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/
7、 編譯,安裝:
# make && make install
安裝sqlite
1、 進入下載文件存放目錄:
# cd /soft/
#
2、 下載sqlite
# wget
3、 解壓下載下來的sqlite
# tar -xzvf sqlite-autoconf.tar.gz
4、 進入解壓后的文件夾
# cd sqlite-autoconf
#
5、 配置、編譯、安裝
# ./configure –prefix=/usr/local/sqlite && make && make install
安裝Subversion
1、 進入下載文件存放目錄
# cd /soft
2、 下載svn server
# wget
3、 解壓下載下來的Subversion 1.7.3
# cd subversion-1.7.3
4、 在當(dāng)前目錄創(chuàng)建sqlite-amalgamation文件夾:
# mkdir sqlite-amalgamation
5、 拷貝sqlite3.c到剛建好的文件夾:
# cp /soft/sqlite-autoconf/sqlite3.c /soft/subversion-1.7.3/sqlite-amalgamation/
6、 配置安裝,需要指定apache、apr、apr-util等目錄:
# ./configure –prefix=/usr/local/svn –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr-util/bin/apu-1-config –with-zlib=/usr/local/zlib/ –with-neon=/usr/local/neon/ –with-ssl –enable-maintainer-mode
7、 編譯并安裝:
# make && make install
相關(guān)配置
1、 增加SVN用戶驗證文件,設(shè)置用戶及密碼,首次創(chuàng)建使用-c參數(shù),后續(xù)不需要加-c參數(shù),否則將會重新創(chuàng)建此文件:
# /usr/local/apache2/bin/htpasswd -cm /usr/local/svn/svn-auth.conf wdj
2、 增加wl用戶:
# /usr/local/apache2/bin/htpasswd -m /usr/local/svn/svn-auth.conf wl
3、 增加svn用戶及權(quán)限配置文件:
# vi /usr/local/svn/svn-access.conf
developers = wdj,wl
* = r
@developers = rw
@developers = rw
說明:
svn用戶所屬組,組名 = 用戶名,用戶名…
svn倉庫為test的操作權(quán)限為@developers組的用戶為可讀可寫
4、 配置apache httpd.conf文件
# vi /usr/local/apache2/conf/httpd.conf
5、 在文件最后加入以下內(nèi)容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
DAV svn
SVNParentPath /opt/svndata
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /usr/local/svn/svn-auth.conf
Require valid-user
AuthzSVNAccessFile /usr/local/svn/svn-access.conf
說明:
SVNParentPath:svn倉庫位置
AuthUserFile:svn用戶驗證文件
AuthzSVNAccessFile:svn用戶權(quán)限驗證文件
6、 創(chuàng)建SVN倉庫目錄:
# mkdir -p /opt/svndata/test
7、 創(chuàng)建svn倉庫:
# svnadmin create /opt/svndata/test
8、 設(shè)置倉庫擁有者和權(quán)限:
# chown -R daemon /opt/svndata/test && chmod -R 755 /opt/svndata/test
啟動服務(wù)并測試
1、 啟動apache(由于集成了svn,所有不需要單獨啟動svn服務(wù))
# /usr/local/apache2/bin/apachectl start
2、 使用瀏覽器訪問倉庫:
(輸入剛才創(chuàng)建的wdj用戶名及設(shè)置的密碼)
3、 正常顯示test – Revision 0: / 說明apache和svn已經(jīng)集成完成
4、 使用TortoiseSVN 或者eclipse svn插件 提交或更新文件,地址為:
linux svn authz的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux svn authz,深入理解 Linux SVN Authz 配置文件,在linux下安裝SVN+Apache時,出現(xiàn) you don’t have permission to access/svn on this server 問題,如何如何才linux環(huán)境下使用apache和svn進行集成的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務(wù),聯(lián)系電話:13518219792
新聞標(biāo)題:深入理解LinuxSVNAuthz配置文件(linuxsvnauthz)
文章起源:http://www.dlmjj.cn/article/cosiiij.html


咨詢
建站咨詢
