CVSサーバを立てる

検証環境がほしく、cygwin上でcvsサーバを稼動させた。cvsのほかにinetdを利用。inetdがsetuidを実行できるようにするために、SYSTEMユーザーでinetdを起動させないといけないらしい。それでサービス登録と…。

inetd利用に必要なcygwinパッケージ
  • Net->inetutils
  • System->initscripts
構築手順

404 Not Found を参照。

以下まとめ。
・/etc/passwd, /etc/group等作成

$ mkpasswd -l > /etc/passwd
$ mkgroup -l > /etc/group
$ /usr/bin/iu-config

/binにWindowsのパスを通す。
・inetd のサービス登録(適宜サービスの再起動をすること)

$ /usr/sbin/inetd --install-as-service ( (サービスから消したいときはinetd --remove-as-service) )

・/etc/services(実体は\system32\drivers\etc\services)に下記エントリを追加

cvspserver       2401/tcp # CVS client/server operations

・/etc/inetd.confに下記エントリを追加(/usr/binの実体は/bin)

cvspserver stream tcp nowait root /bin/cvs -f --allow-root=/path/to/cvsroot pserver

あとはCVSリポジトリ作成。

$ mkdir /path/to/cvsroot
$ cvs -d /path/to/cvsroot init
$ echo <CVSユーザーID>:`crypt <何か2文字> <CVSパスワード>`:<WindowsユーザーID> > /path/to/cvsroot/CVSROOT/passwd