注: 私は最初にserverfault.comでこの質問をしましたが、これまでに 1 つの応答しか得られませんでした。考えれば考えるほど、stackoverflow の方がおそらく優れていることに気づきます。
Apache 2.2 と WebDAV を介して提供される複数のサブバージョン リポジトリがあります。それらはすべて中央の場所にあり、このdebian-administration.orgの記事をベースとして使用しました (ただし、単純な htpasswd ファイルのデータベース認証の使用はやめました)。
それ以来、私もWebSVNを使い始めました。私の問題は、システム上のすべてのユーザーがさまざまなリポジトリにアクセスできるわけではないことです.WebSVNのデフォルト設定は、認証できる人なら誰でも許可することです.
WebSVN のドキュメントによると、これを回避する最善の方法は Subversion のパス アクセス システムを使用することなので、AuthzSVNAccessFile ディレクティブを使用してこれを作成しようとしました。
ただし、これを行うと、「403 Forbidden」メッセージが表示され続けます。
私のファイルは次のようになります。
ファイルにデフォルトのポリシー設定があります。
<Location /svn/>
DAV svn
SVNParentPath /var/lib/svn/repository
Order deny,allow
Deny from all
</Location>
各リポジトリは、以下のようなポリシー ファイルを取得します。
<Location /svn/sysadmin/>
Include /var/lib/svn/conf/default_auth.conf
AuthName "Repository for sysadmin"
require user joebloggs jimsmith mickmurphy
</Location>
default_auth.conf ファイルには次の内容が含まれています。
SVNParentPath /var/lib/svn/repository
AuthType basic
AuthUserFile /var/lib/svn/conf/.dav_svn.passwd
AuthzSVNAccessFile /var/lib/svn/conf/svnaccess.conf
default_auth.conf に 2 番目の SVNParentPath が必要な理由はよくわかりませんが、AuthzSVNAccessFile ディレクティブを追加した結果としてエラー メッセージが表示されたので、今日追加しました。
完全に許可されたアクセス ファイルを使用
[/]
joebloggs = rw
システムは正常に動作しました (基本的には変更されていませんでした)。
[sysadmin:/]
joebloggs = rw
代わりに、「許可が拒否されました」というエラーが再び表示されます。ログ ファイルのエントリは次のとおりです。
[Thu May 28 10:40:17 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET websvn:/
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET svn:/sysadmin
これを機能させるにはどうすればよいですか? apache の設定が間違っていますか、それとも svnaccess.conf ファイルの理解が間違っていますか?
間違った方法で行っている場合は、全体的なアプローチに特にこだわりはありませんので、代替案も自由に提供してください。
更新 (20090528-1600):
この回答を実装しようとしましたが、まだ正しく機能しません。
追加したように、ほとんどの構成が正しいことを知っています
[/]
joebloggs = rw
最初は「joebloggs」がすべて正しいアクセス権を持っています。
ただし、リポジトリ固有にしようとすると、次のようなことを行います
[/]
joebloggs = rw
[sysadmin:/]
mickmurphy = rw
その後、mickmurphy の許可拒否エラー (joebloggs は引き続き動作します) が表示され、以前に発生したエラーと同様のエラーが発生しました。
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'mickmurphy' GET svn:/sysadmin
また、すべてのリポジトリが下にあることを前に説明するのを忘れていました
/var/lib/svn/repository
更新 (20090529-1245):
これを機能させるにはまだ運がありませんが、すべての兆候は、Subversion のパスアクセス制御が適切に機能していないという問題を示しているようです。私の仮定は、リポジトリ構造を正しく認識するように apache または svn を構成していないということです。
これは、「[/]」エントリが完全に機能しているように見えるためです。
また、これは StackOverflow の方が適しているかもしれない質問だと思いますか?