2011-07-19 22 views
1

私はローカルのSubversionサーバー上のリポジトリへのアクセスを制限しようとしています。私はApacheとdav_svn_moduleauthz_svn_moduleを使って設定しました。現在、それはうまく動作している、ユーザーのログイン、およびうまくいっています。DAV svnアクセスを設定するには?

私が達成したいのは、1人のユーザーだけが読み書きできる単一のリポジトリです。

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

    # Limit write permission to list of valid users. 
    <LimitExcept GET PROPFIND OPTIONS REPORT> 
     # Require SSL connection for password protection. 
     # SSLRequireSSL 

     AuthType Basic 
     AuthName "Subversion repositories" 
     AuthUserFile /etc/svn-auth-users 
     Require valid-user 
     AuthzSVNAccessFile /etc/svnauthz.conf 
    </LimitExcept> 
</Location> 

マイ/etc/svnauthz.confは、次のようになり、次のように

/etc/httpd/conf.d/subversion.conf

[groups] 
devs = david.yell,user2,user3 

[/] 
$authenticated = rw 
@devs = rw 
* = 

はしかし、これは現在、理想的な未満であるサーバー、上のすべてのリポジトリへのアクセスを制限されています。単一のリポジトリに固有のアクセスを設定するにはどうすればよいですか?

さらに、これは内部サーバーなので、プロダクションのためのアドバイスはありますが、それは必須ではありません。

更新
私は、リファレンスとしてこれを使用しようとしているhttp://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.htmlが、それは具体的には、ここで

を引用しています、今

[groups] 
devs = david.yell,user2,user3 

[ProtectedRepo:/] 
david.yell = rw 
* = 

[/] 
$authenticated = rw 
@devs = rw 
* = 

を私svnauthz.confファイルを更新しました:セクション名の値は フォーム[repos-name:path]またはフォーム[path]のいずれかです。 SVNParentPathディレクティブを使用している場合は、セクション内にリポジトリ の名前を指定することが重要です。それらを省略すると、 [/ some/dir]のようなセクションはすべてのリポジトリのパス/ some/dirと一致します。

これは、サーバー上のすべての単一リポジトリを宣言する必要があることを意味しますか?現在約30です

+1

リポジトリ/パスのユーザーへのアクセスを設定します。 http://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.html –

+0

リンクをありがとう、私は今この設定があります。しかし、私の '保護された;レポはアクセスを許可しません。 –

+0

あなたが使っている "$ authenticated"構文についての発言:私はこれが存在するかどうかはわかりませんでした。これはどこかに書かれていますか?私はhttp://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/authz.cでしか見つけることができません –

答えて

1

各WEBDAVリポジトリ/パスのユーザーのアクセス許可を区別するためのディレクトリ単位のアクセス制御を設定します。

Apacheの場合、mod_authz_svnモジュールをロードして、独自のrules-fileを指し示すAuthzSVNAccessFileディレクティブ(httpd.confファイル内)を追加する必要があります。 (詳細については、「ディレクトリ単位のアクセス制御」を参照してください。)svnserveを使用している場合は、authz-db変数(svnserve.conf内)をrules-fileに設定する必要があります。

2番目のApacheのhttpdモジュールmod_authz_svnを使用して、細かいパーミッションを設定することができます。このモジュールは、クライアントからサーバーに渡るさまざまな不透明なURLを取得し、mod_dav_svnにそれらのデコードを依頼し、構成ファイルに定義されているアクセスポリシーに基づいて要求を拒否することがあります。

ソースコードからSubversionをビルドした場合、mod_authz_svnは自動的にビルドされ、mod_dav_svnと一緒にインストールされます。多くのバイナリディストリビューションでも自動的にインストールされます。正しくインストールされていることを確認するには、httpdのmod_dav_svnのLoadModuleディレクティブの直後にあることを確認してください。CONF:

参照

関連する問題