サーバ側では `/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
コマンドができることでしょう。