最初, 戻る, 進む, 最後, 目次 に行く。


4.6.2.1 パスワード認証のためのサーバ側の設定

サーバ側では `/etc/inetd.conf' を編集する必要があります。 正しいポートから接続を受けた時、 inetd がコマンド cvs pserver を実行する様に変更します。 ポート番号の既定値は 2401 ですが、 クライアントをコンパイルした時に、 CVS_AUTH_PORT に他の値を定義した場合には異なります。

あなたの使用する inetd が、 ポート番号を素のまま `/etc/inetd.conf' に書いて良いならば、 次の記述で十分でしょう (`inetd.conf' には一行で記述して下さい):

2401  stream  tcp  nowait  root  /usr/local/bin/cvs
cvs -b /usr/local/bin pserver

サーバ上で RCS の実行ファイルがあるディレクトリを、 `-b' オプションで指定します。 また一時ファイルを作成するディレクトリを、 `-T' オプションで指定できます。

あなたの使用する inetd が、 素のポート番号ではなく、サービス名を要求するならば、 `/etc/services' に次の行を追加して下さい:

cvspserver      2401/tcp

そして `inetd.conf' には、 2401 ではなく cvspserver と記述して下さい。

以上を注意して行なった後、 inetd を再起動するか、 初期設定ファイルを再読させるのに必要な処置を取って下さい。

CVS のクライアントは、 パスワードを平文のまま保存または伝送します (詳細は 「4.6.2.3 パスワード認証における安全性の考察」)。 従って、リポジトリを利用する時に、 正規のパスワードを危険に曝さないために、 CVS では別のパスワードファイルを使用します。 このファイルは `$CVSROOT/CVSROOT/passwd' です (「4.3 管理用ファイルの紹介」参照)。 その書式は、二つの欄しかない事を除けば、 `/etc/passwd' と同様です。 次に例示します:

bach:ULtgRLXo7NRxs
cwang:1sOp854gDF3DY

パスワードは、標準 UNIX の関数 crypt() によって暗号化されます。 従って、標準 UNIX の `passwd' から直接コピーすることも可能です。

パスワード認証では、まずサーバが、 CVS の `passwd' ファイル中の、使用者のエントリを確認します。 使用者のエントリがあれば、入力されたパスワードと比較されます。 使用者のエントリが無いか、 あるいは CVS の `passwd' ファイルが存在しない場合には、 システムが使用者の調査機構に使用するパスワードと一致するか試されます。 CVS の `passwd' ファイルが使用される場合、 サーバはエントリの三番目の欄にある使用者の権限で実行されます。 三番目の欄が無い場合には、最初の欄にある使用者の権限が使用されます (つまり CVS の `passwd' ファイルに、 システムで有効な使用者を併せて記述すれば、 架空の使用者名を使用できます)。 どちらの場合でも、 (有効な) 使用者が持たない特権は付与されません。

現在、 CVS の `passwd' ファイルにパスワードを加えるには、 他のどこかからコピーするしか方法がありません。 いつの日か cvs passwd コマンドができることでしょう。


最初, 戻る, 進む, 最後, 目次 に行く。