2012-02-15 35 views
5

ApacheベースのSVN構成を正しく設定する方法については、「Subversionによるバージョン管理」という書籍の説明に従ってきました。これまでのところ、 "/etc/httpd/conf.d"ディレクトリに "subversion.conf"ファイルがあります。そのファイルでは、 "/ svn"という場所を定義し、それをSubversionリポジトリ "/ x1/svn /(repo1)、(repo2)、(etc)"の場所にマップしました。ウィット - 私はまた、リポジトリ領域を所有し、Apacheにグループ権限を追加したユーザ "svn"を作成しました。リポジトリにはApacheが所有するすべてのものを設定する必要なしにアクセスできます(これは奇妙な方法です)物事)。SVN-Apache用の読み取り専用ユーザーを設定する

とにかく。ここで私は問題を抱えています。特定のリポジトリコードベースのソースコードのコピーをダウンロードできるようにするために、私は人々に配布できる "a"ユーザを設定したいと思います。ここにはいくつかのレベルの複雑さがあります。

  1. A)、それらをすべてのリポジトリへの読み取り専用補助金一般ユーザのアクセス
  2. B)特定のリポジトリ

いずれかの方法のために、特定の「読み取り専用」ユーザーに提供できるよう、そしてIオプション(A)を達成する方法を説明する方が簡単だと想像してください。私は現在自分のWebサーバー用に設定した構成を使って、どうすればいいですか?以下は、しかし、うまく働いている私の「subversion.conf」ファイルのコピーである希望のリポジトリにアクセスするすべてのユーザーがフルアクセス権を持っている必要があります。

<Location /svn> 
    DAV svn 
    SVNParentPath /x1/svn 

    # Require SSL connection for password protection. 
    # In order to do this Apache needs to use a self-signed certificate 
    # Talk to Cordel and/or consult Apache Docs and OpenSSL docs 
    # SSLRequireSSL 

    AuthType Basic 
    AuthName "Subversion Repository" 
    AuthUserFile /etc/svn-auth-file 
    Require valid-user 
    </Location> 

そう - どのように私は希望、単一の一般的なユーザーを追加することができますSVNParentPath(オプションA)にあるすべてのリポジトリで読み取り専用になっていますか?また、追加のクレジットのために、個々のリポジトリに対して一意の読み取り専用ユーザーを作成するにはどうすればいいですか(オプションB)。また、すべてのリポジトリで完全な読み取り/書き込みアクセスを認証する必要のあるユーザーを保持します。

私は自分自身でこれを達成しようとしましたが、「限界」方法の意味を消化しようとすると、どの方法が利用可能であるのか、それぞれの方法実際にはSVN/Apacheの設定に関してです。私は常識はGETがGET(読み取り専用)であり、POSTは書き込み操作だと言いますが、これは常識です。私はあまりにも長い間、A-HoleがGET操作を作成せず、データを書き込む能力を持っていると仮定するようにプログラミングしてきました。これは私の苦境です。誰か光を当てることはできますか?

ありがとうございました!

答えて

7

あなたが使用して読み取り専用ユーザーを定義することができPath Based Authorizationファイルに見てみましょう:

[/] 
username = r 

か、上述の目的を達成するために異なるリポジトリのため

[repo1:/] 
username = r 

[repo2:/] 
username = r 

をユーザーを定義することができますあなたのApache設定に以下を追加する必要があります:

LoadModule authz_svn_module path/to/mod_authz_svn.so 
... 
AuthzSVNAccessFile /path/to/access/svnaccess 
+0

ありがとうございました - きれいに働いてくれてありがとう! –

+0

リポジトリ名が認識されないという問題が最初に発生しました。理由は、SVNPathを使用していて、設定ファイルでSVNParentPathを使用していなかったためです。 SVNParentPathに切り替えるとうまく動作します!\ –

+1

[パスベースのチェックを無効にする](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.authz .pathauthzoff)が必要な場合は、これによりパフォーマンスが向上します。 – AdamS

関連する問題