[cvs-jp-info 80] Re: CVSのimport コマンドについて

Back to archive index

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ということになります。
    ※グループは使い慣れていないのでうそを書いていたら指摘してください.

--
鯉江



CVS-JP-info メーリングリストの案内
Back to archive index