プロトコルを使用している場合svn://
、読み取り/書き込みアクセス許可は、svnserve
プロセスを実行しているユーザーのものである必要があります。file://
実際、これがまさに、複数のユーザーがいる場合にプロトコルを使用すべきではない理由です...
svn://
をプロトコルとして使用する場合svnserve
、Subversion リポジトリへの読み取りと書き込みを行うプロセスを要求しています。したがって、ユーザーは実際の読み取り/書き込み許可を必要としません。
実際、プロセス以外の誰もがsvnserve
リポジトリ ファイルに直接アクセスできるようにしたくありません。標準的なセットアップでは、Subversion リポジトリ内のファイルに、Subversion サーバー プロセスであるプロセスを実行しているユーザーのみがアクセスできるようにしhttpd
ますsvnserve
。
問題を解決するには、コマンドを実行しているユーザーがsvnserve
Subversion リポジトリ ディレクトリ ツリー内のファイルを所有していることを確認してください。すべてのファイルとディレクトリがrwx------
またはに設定されていることを確認してくださいrwxr-xr-x
。そうすれば、プロセス以外の誰svnserve
もファイルにアクセスできなくなります。
では、セキュリティをどのように指定しますか? Subversion リポジトリ ディレクトリには、 というディレクトリがありますconf
。svnserve.conf
最も簡単な方法は、このディレクトリの下で呼び出されるファイルを構成することです。興味のある 3 つのセクションがあります。
11行目については、 と の2行# anon-access = read
あり# auth-access = read-write
ます。#
行頭の を削除して、これら 2 つのパラメーターを有効にすることができます。anon-access
ログインしていないときのアクセスの種類を設定します。デフォルトはreadです。おそらく、これをnoneに変更したいと思うでしょう。もう 1 つは、ログイン時のアクセスの種類です。デフォルトのread-writeを維持したいと考えています。
conf/svnserve.conf
ファイルの20 行目あたりに、という行があります# password-db = passed
。11 行目では、ログインするユーザーが持つアクセス権を指定しました。ここで、ログインとパスワードを含むファイルを指定しています。#
この行の先頭から を 削除して、conf/passwd
ファイルにユーザー名とパスワードが含まれていることを指定します。そのディレクトリにサンプルpasswd
ファイルがあります。注: このファイルにアクセス許可があることを確認してくださいrw-------
。誰もそれを開いてパスワードを見られたくないでしょう!
通常、関心があるのはそれだけです。ほとんどのサイトでは、ログインできる人なら誰でも変更を加えることができるはずだと述べています。結局のところ、誰かが台無しにしたら、いつでも元に戻すことができます。ただし、誰がどのファイルを変更できるかをより厳密にしたい場合は、conf/svnserve.conf
ファイルの 27 行目あたりを見てみましょう。これは のように見えます# authz-db = authz
。もう一度#
最初から削除します。conf
ディレクトリに、サンプルがありますauthz
リポジトリの特定のセクションへの読み取りまたは読み取り/書き込みアクセス権を持つユーザーを設定する方法を示すファイル。これを行う前に、2 回、場合によっては 3 回考えることを強くお勧めします。そうしないと、自分のために多くの作業を作成し、すべての開発者に嫌われることになります。開発者があるプロジェクトから別のプロジェクトに引っ張られることは珍しいことではありません。特定の開発者だけが特定のプロジェクトに書き込みできるようにプロジェクトを厳重にロックしている場合、開発者がプロジェクトを切り替えるたびにこのファイルを変更することになり、開発者は自分の作業を行う前にあなたを待たなければならなくなります。軽い接触。軽い接触。