10

プロジェクトにDreamhostでホストされているSubversionリポジトリを使用しています。

一部のユーザーに制限付きでアクセスを許可したいと思います。少なくとも、一部のユーザーに読み取り専用アクセスを許可したいのですが、理想的には、一部のユーザーがリポジトリの一部をまったく表示しないようにしたいのです。SubversionのWebドキュメントに記載されているユーザー権限が見つからないと思いますが、見つかりませんか?

私はPERFORCEを使用することに慣れているので、私が欲しいのはPERFORCEp4 protectに対して何をするかです。

ありがとう。

4

6 に答える 6

12

conf/ ディレクトリにある authz ファイルを見てください。特定のユーザーと特定のディレクトリに権限を設定できます。svnserve.conf では、匿名ユーザーに読み取りアクセス権があるかどうかを指定できます。

これは私のリポジトリからの例です:

[groups]
project1_team = dave, john, andy

[/]
* =
dave = rw

[/project1]
@project1_team = rw

[/project2]
andy = r

ここで起こっていることは、project1 へのフル アクセスを持つユーザーのグループを定義したことです。dave (たまたま私) はリポジトリ全体へのフル アクセス権を持っていますが、andy は project2 への読み取り専用アクセス権を持っています。

于 2009-02-18T20:51:08.067 に答える
3

Web ホストには、通常、認証を実行するための構成ファイル (任意の名前を付けることができます) があります。各リポジトリには
[my-repository:/]
myuser = rwのようなリストがあります

これにより、リポジトリ全体に対する「myuser」の読み取りと書き込みのアクセス許可が付与されます。次のこともできます。

[my-repository/just-this-folder/:]
somejerk: r

あなたが望むことをするべきです。

于 2009-02-18T20:55:38.617 に答える
2

SVN と Apache を併用している場合は、次の手順に従います。

管理できる最高のアクセス許可レベルは、リポジトリごとになることに注意してください。repository1 と repository2 があるとします。

1- 別のファイルで各リポジトリに適切なユーザーを作成します。

sudo htpasswd -c -m /etc/apache2/dav_svn_REPOSITORY1.passwd $user_name_for_repository1
 sudo htpasswd -c -m /etc/apache2/dav_svn_REPOSITORY2.passwd $user_name_for_repository2

各ファイルにさらにユーザーを追加する場合は、コマンドから -c を削除します。初めてファイルを作成するためのものだからです。

2- 次のファイルを編集します。

nano /etc/apache2/mods-available/dav_svn.conf

次のようなセクションがあります。

<Location /svn>
  SVNPath $your svn repository path
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
  SSLRequireSSL
</Location>

あなたが持っているリポジトリごとにこのブロックをコピーしてください。この場合、このようなブロックがもう 1 つ必要です。ここで、上記のブロックを削除 (削除) し、上記の変更されたコピーである次のブロックを追加します。

<Location /svn/repository1>
  SVNPath $your svn repository1 path
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn_REPOSITORY1.passwd
  Require valid-user
  SSLRequireSSL
</Location>
<Location /svn/repository2>
  SVNPath $your svn repository2 path
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn_REPOSITORY2.passwd
  Require valid-user
  SSLRequireSSL
</Location>

3- ファイルを保存し、Apache を再起動します。

于 2012-06-19T22:26:16.773 に答える
0

私は Dreamhost が使用する特定の構成に精通していませんが、アクセス許可を強制する一般的な方法は、Apache 認証メカニズムを使用することです。Subversion ドキュメントの関連ページを次に示します。

于 2009-02-18T20:49:56.477 に答える
0

上記の受け入れられた回答を参照してください。ただし、Dreamhost 固有の場合、~/svn ディレクトリには、各リポジトリ用に 2 つのファイルrepo_name.accessrepo_name.passwd. repo_name は、リポジトリに付けた名前です。受け入れられた回答で説明されているように、 repo_name.access ファイルを編集できます。

chmod 644 repo_name.accessApache がアクセスできるように、編集後に忘れないでください。

于 2009-02-18T22:41:05.820 に答える
0

Subversion Bookに答えがあります

真剣に、人々: 他の人をせがむ前に、最も基本的なドキュメントでさえ読むことが時代遅れになったのはいつですか?

于 2009-02-18T20:55:13.097 に答える