68user's page 掲示板

Prev< No. 2336> Next  [最新発言に戻る] [過去ログ一覧]
No. 2336 # 68user 2001/12/06 (木) 14:58:28
>>2334 わたなべ
> ひょっとして、これもまずい行動でしたか。
問題ありません。書いてある通り、covered by the BSD-Licence です。

checkout できるファイルとできないファイルがあるということですから、
まずはリポジトリのパーミッションはどうなっているか確認して下さい。

同じディレクトリでも co できるファイルと co できないファイルがあれば、
ファイルのパーミッションが怪しいですし、あるディレクトリの下のファイルが
全て co できないならディレクトリのパーミッションがおかしいでしょうし。

うちの Solaris2.6 では
    % chown -R cvs /cvsroot (グループは cvs グループで統一)
    % chmod -R g+w /cvsroot (cvs グループに書き込み権限を与える)
    % find /cvsroot -type d | xargs chmod g+s (BSD タイプのパーミッションに)
とかしてます。でも、cvsweb.cgi は nobody で動かしているから
これは関係ないかな…。

また、CGI の実行権限は何ですか? 例えば nobody なら su nobody して
から checkout してみて下さい。

実際にどういうコマンドが実行されているかは、
    if (! open($fh, "-|")) { # child
        open(STDERR, ">&STDOUT"); # Redirect stderr to stdout
        exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where);
    }
の前に
    print "Content-type: text/plain\n\n";
    print qq(exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where););
    exit;
などと書けばわかるでしょう。

それでもダメなら
        exec($CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where);

        exec("/bin/truss", $CMD{cvs}, @cvs_options, '-d', $cvsroot, 'co', '-p', $revopt, $where);
として、どのファイルをオープンしようとしてエラーになっているかを
調べて下さい。ちなみに、こちらでやってみると
    open("/MASTER/cvs/CVSROOT/config", O_RDONLY) = 4
    open("/MASTER/cvs/CVSROOT/cvsignore", O_RDONLY) Err#2 ENOENT
    open("//.cvsignore", O_RDONLY) Err#2 ENOENT
    open("/MASTER/cvs/CVSROOT/cvswrappers", O_RDONLY) = 4
    open("/MASTER/cvs/CVSROOT/modules", O_RDONLY) = 4
    ..
    open("/MASTER/cvs/admin/public_html/cvsweb.cgi,v", O_RDONLY) = 5
となります。

Prev< No. 2336> Next  [最新発言に戻る] [過去ログ一覧]