3

http経由でアクセスするApache dav-svnモジュールを備えたUbuntuサーバーでSVNサーバーを実行しています。

複数のクライアントのプロジェクトがあるため、/var/svn にツリー構造を作成しました

/var/svn/client_1
/var/svn/client_1/project_1
/var/svn/client_1/project_2
...
/var/svn/client_2
/var/svn/client_2/project_1
/var/svn/client_2/project_2

各プロジェクトは新しいリポジトリです。新しいプロジェクトを作成する必要がある場合は、次のようにします

クライアントフォルダーに新しいリポジトリを作成します

svnadmin create /var/svn/client_X/project_Y

dav_svn_conf に新しいエントリを作成します

<Location /client_X>
  DAV svn
  SVNParentPath /var/svn/client_X

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
  AuthzSVNAccessFile /etc/apache2/svn-acl.txt
</Location>

したがって、現時点では、 https ://my_svn_server.com/client_x/project_y からアクセスできます。

/etc/apache2/svn-acl.txt ファイルで、すべてのリポジトリを完全に制御できます

[/]
my_user=rw

クライアントが所有するプロジェクトへのアクセス権をクライアントに付与したいのですが、それができません。リポジトリ名を使用すると、他のクライアントのすべてのリポジトリにアクセスできます

[project_1:/]
client_user=rw

彼は client_1/project_1 と client_2/project_1 にアクセスできます

私は次のことをしたいと思います:

[client_1:/]
client_user=rw

どうすればいいですか?リポジトリの作成方法を変更する必要がありますか?

答えてくれてありがとう。

4

1 に答える 1

0

SVN の ACL を使用せず、代わりに Apache/HTTP Auth を使用して、LocationルールとシンプルAllowでシンプルな URL スペースを管理することをお勧めします。Deny

于 2013-03-11T20:29:28.900 に答える