SVNでユーザーを追加するにはどうすればよいですか?


12

アップデート#3:見つけたと思います。
/etc/httpd/conf.d/subversion.conf

<Location /repos>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

svn-auth-confの形式は

user1:$apr1$randome letters ... $random letters and numbers

コマンドラインツールを使用してユーザーを追加したような気がしますが、何を覚えているのかわかりません。

アップデート#2:http.confを検索すると、次の結果が得られます

/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf

どちらにもsubversionに関連しているように見えるものはありません。役立つ場合は、ここにファイルを投稿できます。

元の質問:

数年前、subversionをインストールしてセットアップしました。ユーザーを追加した方法を覚えていません。ここでもう1つ追加する必要がありpasswdますが、ファイルをチェックしたところ、ユーザーが定義されておらず、svnserve.confファイルに何も設定されていませんでした。両方ともすべてコメント化されていました。それは私がグーグル経由でユーザーを追加するために見つけることができる唯一の方法です。だから私はそれを試しました:

パスワード

user1 = password1
user2 = password2

svnserve.conf

anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos

Linuxサーバーのユーザーではないuser1場合でも、でしかアクセスできuser1ません。ユーザーを追加する他の方法はありますか、または構成に問題がありますか?

更新:

svnserve.confファイルに次の行を追加しました

authz-db = authz

それから私のauthzファイルはこのようになります

authz [グループ] devs = user1、user2

[repos:/]
devs = rw

まだ動作しません。user1のパスワードは、ログインに使用するものとpasswdで異なります。そのため、Subversionは認証にそれをまったく使用していません。特に、以前はファイルが空で、まだログインできたためです。認証にsvnserve、passwd、authzファイルを使用することを確認する方法はありますか?どこかに別の設定ファイルがありますか?

回答:


8

Subversion認証には、通常2つの部分があります。1つ目は、ある種のパスワードリポジトリです。2番目はアクセス制御リストです。パスワードリストは、ユーザーの認証とパスワードのチェックに使用されますが、どのユーザーがどのリソースにアクセスできるかを設定する必要もあります。

いくつかのパスワードリポジトリタイプがあります。私はpasswdタイプに慣れていません。Apacheがユーザー認証に使用するのと同じユーザー/パスワードファイルを使用するhtpasswdタイプを使用します。でこのファイルにユーザーを追加しますhtpasswd .htpasswd username。パスワードの種類に応じてこの手順を正しく行ったようです。

2番目の部分はACLです。Subversionにはaccess、リポジトリのセクションごとに、どこかに呼ばれるファイルが必要です。アクセスするリポジトリの下に、そのリポジトリへのusername = rw読み取り/書き込みアクセス権をそのユーザーに与えるための行を追加する必要があります。


家に帰ったらやってみます。おなじみですね。
スコット

これだとは思わない。サーバーに.htpasswdファイルがありませんでした。
スコット

6

SVNサーバー構成(主に)は3つのファイルで構成されています。

  • authz
  • パスワード
  • svnserve.confこれがメインファイルです(authz-db = authz)

したがって、2つの構成ファイルを提供するだけです。authzファイルに以下が含まれていることを確認してください。

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

アクセスを許可したいプロジェクトテスト


私はこれを試しましたが、うまくいきませんでした。user1としてログインに使用するパスワードは、passwdファイルにあるものとは異なります。使用しているとは思いません。
スコット

適切な構成ファイルを使用していることを確認してください。出力は何ですかps aux|grep svn
Sergey

そしてもう一つ質問。どのようにしてreposディレクトリ構造(svn://またはthrought httpサーバー)を取得しますか?
セルゲイ2011

root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
スコット

httpサーバー経由
スコット

4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

注:ファイルで使用されているものとまったく同じファイルおよびパス名を使用してくださいsubversion.conf。この例では/etc/svn-auth-usersファイルを使用しています。


2
htpasswd -m /etc/subversion/svn-auth-file yourusername

次に、パスワードを要求し、パスワードを確認します。


1

コマンドを使用できます

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXXはユーザー名であり、パスワードを要求します

これは、svn confフォルダーユーザー名パスワードconfファイルを読み取らないapacheでsvnをセットアップした場合のみ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.