私はSVNとアップロードされたプロジェクトを使ってリポジトリをセットアップしました。これらのプロジェクトでは複数のユーザーが作業しています。しかし、誰もがすべてのプロジェクトに取り組んでおり、アクセスする必要はありません。私は各プロジェクトの権限をユーザーと設定したいと思っています。SVNでアクセスコントロールを設定する方法は?
どうすればよいですか?
私はSVNとアップロードされたプロジェクトを使ってリポジトリをセットアップしました。これらのプロジェクトでは複数のユーザーが作業しています。しかし、誰もがすべてのプロジェクトに取り組んでおり、アクセスする必要はありません。私は各プロジェクトの権限をユーザーと設定したいと思っています。SVNでアクセスコントロールを設定する方法は?
どうすればよいですか?
最も良い方法は、Apacheを設定し、それを使ってアクセスを設定することです。ヘルプについては、svn bookを確認してください。 Apacheを使用したくない場合は、svnserveを使用して最小限のアクセス制御を行うこともできます。あなたののsvn \ reposの\ YourRepo \ confにフォルダで
次の2つのファイル、のauthzとpasswdのがあります。これらはあなたが調整する必要がある2つです。
passwdファイルには、ユーザー名とパスワードを追加する必要があります。
が希望概念的なグループを作成し、に人を追加します。
[users]
User1=password1
User2=password2
を次にあなたがのauthzファイルに応じて権限を割り当てる:私はあなたがそれを使用している人々がいるので、あなたはすでにこれを行っていると仮定しますそれ:
[groups]
allaccess = user1
someaccess = user2
次に、権限とプロジェクトレベルの両方からアクセス権を選択します。
それでは、私たちの「すべてのアクセス」みんなをルートからのすべてのアクセス与えてみましょう:
[/]
@allaccess = rw
をしかし、唯一の私たちの「いくつかのアクセスは、」みんなにいくつかの下位レベルのプロジェクトへの読み取り専用アクセス与える:
[/someproject]
@someaccess = r
を
また、authzとpasswdファイルの簡単なマニュアルもあります。
私はApacheのアプローチが良いと示唆していますが、SVN Serveはうまく動作し、かなり簡単です。
リポジトリが "my_repo" と呼ばれていると仮定すると、それがCに格納されています\ svn_repos: ":\ svn_repos \ my_repo \ confにC" を
はに "passwdの" というファイルを作成します。 \ svn_repos \ my_repo \ confに\のsvnserve.confとは
[general]
password-db = passwd
auth-access=read
auth-access=write
を設定します。これは、読み取りまたはこれに書き込むには、ログインするユーザーを強制します:Cで
[Users]
username = password
john = johns_password
steve = steves_password
:このファイルは次のようになります。リポジトリ。
それぞれのリポジトリに対して、passwd
ファイル内の適切なユーザーのみを含む以下の手順を実行します。
注意:パスワードはSVN confファイルにプレーンテキストで保存されています! – AVA
あなたはsvn + ssh:を使うことができ、指定された場所のリポジトリへのアクセス制御に基づいています。
これは、私がUniにプロジェクトグループリポジトリをホストする方法です。ここでは、何も設定できません。グループが所有するディレクトリを持ち、そこにsvn-admin(またはそれがあったもの)を実行するだけで、設定を行う必要はありません。
これは面倒な答えです。このsshメソッドは文書化されておらず、Linuxのみで動作するようです。 – user1040323
単に真実ではありません。 1つは、自分のWindowsサーバーでSSHデーモンを実行する必要があり、svn + sshはLinuxの場合とまったく同じWindowsで動作します。 WindowsマシンでSSHを実行する方法を説明するチュートリアルがたくさんあります。 –
また、dear @ user1040323には、Windows以外の他の非Linuxプラットフォームがあります。私は_wasn't_ Linuxではなく、いくつかのBSDの変種であったマシンをかなり確信しています。 –
@Stephenベイリー
あなたの答えを完了するには、あなたもあなたのリポジトリ内のプレーンテキストファイルを介して、プロジェクトマネージャーへのユーザー権限を委任することができます。
これを行うには、SVNデータベースをデフォルトのauthz
ファイルに設定します。
###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....
[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =
[/admin/acl_descriptions.txt]
@projadmins = rw
このデフォルトauthz
ファイルあなたのSVNリポジトリ内のプレーン目に見えるテキストファイルを変更するためにSVNの管理者を認証するには、「/admin/acl_descriptions.txt」、ここでSVNの管理者やプロジェクトマネージャが変更されますと呼ばれ、ユーザーを登録します。
次に、リビジョンがそのファイル(およびそのファイルのみ)で構成されているかどうかを検出するプリコミットフックを設定します。
このフックスクリプトは、プレーンテキストファイルの内容を検証し、各行がSVNの正しい構文に準拠しているかどうかを確認します。
/admin/acl_descriptions.txt
最初の上に提示
authz
ファイル: その後ポストcommitフックは、連結ので\conf\authz
ファイルを更新します反復はSVN管理者によって行われ、彼は以下を追加します:
[groups]
projadmins = zzzz
彼は修正を行い、authz
ファイルを更新します。
プロジェクトマネージャー 'zzzz'は、任意のユーザーグループと必要なユーザーを追加、削除、または宣言できます。 彼はファイルをコミットし、authz
ファイルが更新されます。
このように、SVN管理者は、すべてのSVNリポジトリのすべてのユーザに従う必要はありません。私を捕まえ
つの落とし穴:
[repos:/path/to/dir/] # this won't work
しかし
[repos:/path/to/dir] # this is right
あなたは、ディレクトリの末尾にスラッシュを含めないようにする必要があるか、OPTIONS要求のための403が表示されます。
WTF、私はこれを探していませんでしたが、それは私の問題の答えをexacltyでした= D – Fox32
関連マニュアルページはhttp://svnbook.red-bean.com/en/1.7/svn.serverconfig.pathbasedauthzです。html – ErichBSchulz
注:ssh(svnserveなし)経由でリポジトリに直接アクセスする場合は動作しません –
リポジトリの下の1つのフォルダをユーザに与えると、ユーザは直接リンクでこのフォルダにアクセスできます。リポジトリを追加することは可能ですか?彼に割り当てられたフォルダだけが表示されますか?返信いただきありがとうございます 。 – maoanz