1

ホスティング アカウントに SVN サーバーをセットアップしました。ユーザーはチェックインおよびチェックアウトできますが、リポジトリ全体にアクセスできます。

人々にアクセスを許可するために、私はユーザーに私のアカウントへの公開鍵を発行し、次のような行を ~/.ssh 内の「authorized_keys」ファイルに追加します:

command="/home/user/packages/bin/svnserve -t -r /home/user/repository --tunnel-user=diogo",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa [KEY DATA IN HERE]== xxxx@xxxx.hostxxxxx.com

ユーザーは、次のようにトンネルを介してサーバーからチェックアウトできます。

svn+ssh://host.com/project/trunk

私の質問は、特定のユーザーが特定のプロジェクトにアクセスできるように制限するにはどうすればよいですか?

4

1 に答える 1

1

SSH トンネルを使用しています。svn bookを正しく読んだ場合、ログインするユーザーのリポジトリ ファイル自体にアクセス許可を設定する必要がありますが、conf ファイルでユーザーを直接ブロックすることもできます。

トンネルを介して実行する場合、承認は主に、リポジトリのデータベース ファイルに対するオペレーティング システムの権限によって制御されます。これは、Harry が file:/// URL を介してリポジトリに直接アクセスしている場合とほとんど同じです。

複数のシステム ユーザーがリポジトリに直接アクセスする場合は、それらを共通のグループに配置することをお勧めします。また、umask について注意する必要があります。(「複数のリポジトリ アクセス方法のサポート」というセクションを必ずお読みください。)

ただし、トンネリングの場合でも、単に auth-access = read または auth-access = none を設定するだけで、svnserve.conf ファイルを使用してアクセスをブロックできます。

(「SSH認証と認可」より)

ところで、あなたはホスティング アカウントでこれを行っていると言っています。私も一度やってみましたが、SSHユーザーの新規追加ができなかったので断念しました。SSH ユーザー アカウントを追加できない場合、トンネルを介してきめ細かい認証を行うことはできません。ユーザーは常にリポジトリに完全にアクセスできます。

マルチユーザー認証を SSH から独立して使用するには、svn を Apache と統合する必要がありますが、これは共有環境では通常不可能です。

私は小さなWindowsベースの仮想サーバーに切り替え、そこにBrain-dead easy svn wrapper VisualSVN Serverをインストールしました。多少の費用がかかります (月額約 20 ユーロ、Linux ベースの仮想サーバーは 10 ドルから) が、それ以来満足しています。(もちろん、Linux を使用して、Apache で svn をセットアップすることもできます。これは、VisualSVN が内部的に行うことでもあります。)

于 2010-06-24T09:28:22.973 に答える