[test:/] //這表示,倉庫test的根目錄下的訪問權限
User1 = rw //test倉庫user1用戶具有讀和寫權限
User2 = r //test倉庫user2用戶具有讀權限
[/] //這個表示在所有倉庫的根目錄下
* = r //這個表示對所有的用戶都具有讀權限
#[groups] //這個表示群組設置
#svn1-developers = user1 //這個表示某群組里的成員
#svn2-developers = user1
刪除Subversion默認安裝庫文件權限文件authz,passwd
# rm /home/svnroot/repository/test/conf/authz
# rm /home/svnroot/repository/test/conf/passwd
將這個設置完成后。重啟Apache,可以通過
http://localhost/svn/test
這個URL來訪問倉庫了,當然,受權限的限制,必須是合法用戶才能訪問且具有相應的權限
四.一些備忘:
1. svn checkout http://localhost/svn/example
2. svn commit時的默認編輯器的環境變量$SVN_EDITOR=vi需要手動設定,用kate好像有問題
3.如果linux的登錄用戶名密碼都和svn的其中一個用戶名密碼相同時,在checkout的時候不會要求輸入用戶名密碼直接可以checkout出來。比如:linux有個用戶user1,svn也有一個用戶user1,并且密碼都是一樣的,當用user1登錄linux后,執行checkout,可以直接提取出源碼文件,不用輸入認證信息。
4.在svn使用過程中牽扯到幾種權限:文件系統的權限,linux系統權限,svn用戶的權限,apache進程的權限。
文件系統的權限,linux系統權限:這里相同的意思,是平時大家使用linux時文件夾和文件的訪問權限。在svn建立倉庫,文件夾,配置文件的時候用svnroot用戶,并將倉庫權限設置為700,不允許其他用戶直接通過文件系統查看,只能由svnroot進行管理。
apache進程的權限:因為所有跟倉庫傳輸的操作都是通過apache進程進行的,所以即使你給svn用戶設置了很大的權限,但是apache進程沒有訪問倉庫或者相關文件的權限也沒有用,apache進程的權限設置在/usr/local/apache/conf/httpd.conf文件中配置,找到文件中的這兩行:
User daemon #將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
svn用戶的權限:是在repository/authz.conf文件中設置的權限信息,是svn用來管理倉庫訪問權限的。
5. svn服務器設置有兩種方式:http和svnserve。這里介紹的是http方法
6.在/etc/profile的結尾設置一些svn啟動時要做的工作# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
7. APR libraries安裝SVN的時候好指定--with-apr=和--with-apr-util=參數到Apache安裝的根目錄
(ServerRoot)下,而不是使用缺省的SVN安裝包中自帶的apr。否則如果你安裝的Apache
版本不同有可能導致APR庫不匹配,出現類似:
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument的錯誤。
Updated 2006-04-20 16:30 --比如說如果你安裝的是apache 2.2.0版本,需要在編譯安裝svn的時候指定
--with-apxs和--with-apr參數到你的apache2.2.0安裝目錄下:
./configure --divfix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode