web-dev-qa-db-ja.com

AuthzSVNAccessFileはどのように機能しますか?

WebDAVアクセスでSVNリポジトリを設定しました。何らかの理由で、チェックアウトできません。

ここに私のhttpd.conf部分があります:

<Location /svn>
  DAV svn
  SVNParentPath /home/svn/repositories
  AuthzSVNAccessFile /home/svn/dav_svn.authz
  Satisfy Any
  Require valid-user
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/dav_svn.passwd
</Location>

「first」と「second」という2つのリポジトリがあり、dav_svn.authzの内容は次のとおりです。

[first:/]
doe = rw
* = r

[second:/]
doe = rw
grig = rw
* = r

ユーザーdoeで2番目をチェックアウトしようとすると、error_logで次のようになります。ユーザーdoe:「/ svn/second」の認証エラー:パスワードの不一致

何が問題であるかを理解するために、AuthzSVNAccessFileがどのように機能することになっているのかをよりよく理解したいと思います。

5
grigy

エラーは両方のリポジトリのユーザーdoeでのみ発生しますか?または、2番目のリポジトリのgrigで失敗しますか?すべてのユーザーでエラーが発生し、エラーがAuthUserFileになく、SVNParentPathが正しいと想定すると、すべてのリポジトリにデフォルトのアクセスルールを追加する必要があると思います。

[/]
* = r

[first:/]
doe = rw

[second:/]
doe = rw
grig = rw

または、ユーザーdoeとgrigをグループに入れて、次のように実行することもできます。

[groups]
secondteam = doe, grig

[/]
* = r

[first:/]
doe = rw

[second:/]
@secondteam = rw

あなたは、AuthzSVNAccessFileがどのように機能することになっているのかをよりよく理解したいと述べています。 このチュートリアル を読むことをお勧めします。複数のリポジトリをサポートするためのチュートリアルからのフルパスベースの承認ファイルの例は以下のとおりです。

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak

# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =

# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw

# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw

# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw
7
runlevelsix

"htpasswd"を使用してdoeユーザーを/home/svn/dav_svn.passwdに追加しましたか、それともなんらかのタイプのフロントエンド管理者からのものでしたか?

たとえば、Virtualmin/Webminで問題がありました。Apacheとは異なる形式のhtpasswdファイルを編集していたため、htpasswdを使用してユーザーを再読み込みすることで問題が解決しました。

1
Kiss Stefan

単なるチェック(わからない。後でチェックする)が、構文が[first:/home/svn/first]

ここで、firstは名前、/svn/firstはレポへのパスです。

それが問題を解決するかどうかはわかりませんが、現在のconfファイルはあなたが望んでいるものとは正確には違うと思います。

0
Kiss Stefan