浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

FastCGIとsuexecユーザ

Apache httpd

SNI対応に備えてPHPの同居調査をしていますが、納得いかないところでつまずいています。

VirtualHost を SuexecUserGroup 指定で実行しているのですが、SetHandler cgi-script では正しく動くのに SetHandler fcgid-script では動かない。

エラーメッセージはログに出力されているのでそのメッセージを頼りに apache の suexec ソース suexec.c 追いかけて、場所はわかっています。

    if (strspn(target_uname, "1234567890") != strlen(target_uname)) {
        if ((pw = getpwnam(target_uname)) == NULL) {
            log_err("invalid target user name: (%s)\n", target_uname);
            exit(105);
        }
    }
    else {
        if ((pw = getpwuid(atoi(target_uname))) == NULL) {
            log_err("invalid target user id: (%s)\n", target_uname);
            exit(121);
        }
    }

この部分で cgi-script 指定の場合は、通過するけど fcgid-script 指定の場合は invalid target user name: (%s) とでて、しかも %s は uid が表示されています。

謎だ。

  • この記事いいね! (0)