パスワードによる認証を利用する場合に最も注意しなければならないことは、 パスワードがネットワーク上を素のまま流れるということです。 もし本当にリポジトリのアクセス権限を管理したいという場合、 この方法はお薦めできません。
この認証方法は、一般的に、anonymous ユーザに対してソースコードを 公開したいという場合に利用されています。 anonymous ユーザとはリポジトリを読むこと (checkout など) はできますが、 書き込み (commit など)はできないように設定されているユーザのことです。
パスワードによる認証を行うには、サーバ側でいくつか準備が必要になります。
まずは、/etc/inetd.conf と /etc/service を編集して、ポート 2401 へのコネクト に対して cvs pserver コマンドを実行するように設定します。 2401 は、pserver のデフォルトポート番号です。
例 6-2. /etc/inetd.conf の例
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs -b /usr/bin --allow-root=/usr/local/src/cvsroot pserver |
例 6-3. /etc/service の例
cvspserver 2401/tcp cvspserver 2401/udp |
--allow-root オプションには、アクセスを許可するサーバ上の CVSROOT ディレクトリを指定します。複数指定することも可能です。
-T オプションを使用すれば CVS が使用するテンポラリディレクトリを 指定することができます。
次にログインを許可するユーザを $CVSROOT/CVSROOT/passwd のなかに 列挙します。ユーザとパスワードとサーバ上に存在する本当のユーザを セミコロン ':' で区切って並べます。
例 6-4. $CVSROOT/CVSROOT/passwd の例
anonymous:abmF1QH4PEr.E:anonymous |
第3カラムに指定する真のユーザ名は省略することができます。 その場合、第1カラムのログイン名と同じユーザがサーバ上のユーザとして /etc/passwd に登録されている必要があります。 CVS がリポジトリを実際に読み書きする時には、 ここで指定されているユーザ権限を利用するので非常に大切です。