KOIE Hidetaka (鯉江英隆)
hide****@koie*****
2003年 4月 30日 (水) 14:47:52 JST
Message-Id: <59C30****@mail*****> Date: Wed, 30 Apr 2003 14:15:00 +0900 From: チャコティ <chako****@mail*****> Subject: [cvs-jp-info 79] CVSのimport コマンドについて | 現在では一旦CVSにloginしてしまえば誰でも自由にプロジェクトを落とす | 事ができてしまいます。(勿論プロジェクト名を知る必要はあります) | で、これが自由にできないようにする為に新規でcheckoutする時にパスワード | 入力できればいいかなと考えています。クライアント側の設定は以下の感じで | す。 pserverプロトコルでは 最初にパスワード認証をおこなってしまい それ以降は行わない(というより、行えないプロトコルになっている)ので クライアントがcheckoutを要求してきたのを契機に認証をはじめるのは いまは無理だとおもいます。 | 他のプロジェクトが落とせなければ別の方法でも構いません。(但しCVSサー | バーを沢山建てるっていうのは無しです) CVSサーバを複数たてるのは避けたいということですが.. 案1. リポジトリをプロジェクト毎に作成する たとえばSolarisなら [/etc/inetd.conf] cvspserver stream tcp nowait root /bin/sh sh /etc/cvspserver.sh [/etc/cvspserver.sh] #!/bin/sh #LOCKDIR=/tmp/cvs-lock-dir #if [ ! -d $LOCKDIR ]; then # mkdir $LOCKDIR || exit 1 # chmod 1777 $LOCKDIR || exit 1 #fi exec /usr/local/bin/cvs \ --allow-root=/project1/REPOSITORY \ --allow-root=/project2/REPOSITORY \ --allow-root=/project3/REPOSITORY \ pserver という感じで、複数のリポジトリを許可するようにできます。 オーソドックスには.. 案2 グループの設定をちゃんとやる UNIXの設定でプロジェクト毎にグループを設けて リポジトリ上でchmodして、プロジェクト毎にグループの設定をして ユーザ毎にグループに参加できるかどうか設定すれば 目的は達成できると思います。 具体的には 0. $CVSROOT/CVSROOT/passwdはユーザ毎にパスワードを設ける 1. /etc/groupにエントリを追加 2. $CVSROOTに移動して chgrp -R group1 project1 3. ディレクトリにSET GIDビットをたてる これによりサブディレクトリをつくったときに グループが継承されるようになります。 find project1 -type d -print | xargs chmod g+s 4. /etc/groupを編集してプロジェクトとユーザの対応をつける たとえば project1:x:10000:koie,hide なら グループproject1のGIDは10000で 許可するユーザはkoieとhideということになります。 ※グループは使い慣れていないのでうそを書いていたら指摘してください. -- 鯉江