
我有一個 ubuntu 系統並在其上安裝了 subversion。現在我想在其上建立多個儲存庫。所有儲存庫都必須有自己的登入名稱。
例如---example.com/svn/repo1 : user--1
example.com/svn/repo2 :用戶--2
example.com/svn/repo3 :用戶--3
現在 user1 不能存取 repo2 和 repo3。 & user2 不得存取 repo1 & repo3
我可以建立多個儲存庫,但不能建立登入。請幫幫我。
謝謝
答案1
使用 dav_svn_module
這是一個範例conf,請查看SVN書更深入
LoadModule dav_svn_module /usr/lib/apache/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache/mod_authz_svn.so
<IfModule dav_svn_module>
<IfModule authz_svn_module>
<Location /svn>
DAV svn
SVNParentPath /svn
AuthzSVNAccessFile /etc/apache2/svn_authz
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/apache2/svn_passwd
</Location>
</IfModule>
</IfModule>
一個授權範例:
cat /etc/apache2/dav_svn.authz
[groups]
admin = foo
graph = bar
developers = foo,baz
[/]
* =
@admin = rw
@developers = rw
@graph = r
[/branches/prod/*]
* =
@admin = rw
[ZCS:/]
* =
@admin = rw
@developers = rw
@graph = rw
[SYMFONY_PLUGINS:/]
* =
@admin = rw
@developers = rw
[SYMFONY:/]
* =
@admin = rw
@developers = rw
答案2
使用 svnserve 而不是 Apache 伺服器。在您建立的儲存庫中,您將找到一個 conf 目錄。使用您喜歡的文字編輯器編輯以下文件並進行以下更改:
在 svnserve.conf 中取消註解以下內容:[一般]
anon-access = read
(並將讀取更改為無)
auth-access = write
passwd-db = passwd
在 passwd 檔案中新增使用者名稱及其對應的密碼,格式為使用者名稱 = 密碼
[users]
admin = adminspass
dev1 = devspass
在所有儲存庫中進行類似的更改,並使用以下命令啟動 svnserve:
svnserve -d --foreground -r /root/dir/of/repo
即,如果您按照許多教程中的說明在 /home/svn 中建立了儲存庫,則該命令將如下所示svnserve -d --foreground -r /home/svn
可以使用任何 svn 用戶端透過以下 URL 存取該儲存庫:
svn://hostname-or-ip/repo-name