Top過去ログ目次掲示板

作成日:2004年01月23日 作成:おやじ
掲示板で過去に質問された内容です。

No.2440 UserDirでCGIが動作しない・・・


No.2440 投稿時間:2004年01月23日(Fri) 02:33 投稿者名:J-ker URL:
タイトル:UserDirでCGIが動作しない・・・

こんばんわ
おやじさんのHPを参考に http.conf の設定をしたのですが、
何回も見直してもユーザーディレクトリでCGIが動作しません・・・

簡単なCGIプログラムで動作確認をしているのですが、
httpd-2.0.40-21 を使っています
# useradd -s /sbin/nologin test
# passwd test ****
# chmod 711 /home/test
それでFFFTPでログインし、
public_html を作成し、
/test/public_html/cgi/*.cgi を追加し、

test 711
public_html 755
cgi 755
*.cgi 755
*.pl 644 パーミッションも正しく設定 しているのですが、動作してくれません;;

試しに、rootでログインし、DocumentRootに
/var/www/public_html/test/cgi/*.cgi
を追加し、パーミッションを正しく設定すると問題なく動作しました

原因がわからず、おやじさんに何か原因がわかれば教えてほしいと思って書き込みました

httpd.conf をアップしました
時間のあるときに設定を見てもらえると嬉しいです

http://carrot.cafenet.jp/clip/img/46.txt


No.2444 投稿時間:2004年01月23日(Fri) 10:59 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:owner問題とsuexec問題でしょう。

 RH標準のApacheを使われていると思いますが、その場合、おやじのとおりにやるとこの問題がでます。過去ログ、No.1451も参考にしてください。

1. userとgroupをnobodyに変更しているはずですが、これがまずい。userとgroupをapacheに戻してください。

#?(´ー`*)
User nobody
Group nobody

2. これで、直らなければ、/usr/sbin/suexec のownerがroot、groupがapacheになっているか確認して、異なっていたら修正してください。

3. 後、本件には直接関係ありませんが?

#公開するフォルダ
DocumentRoot "/home/public_html"

 で、いいのですよね。


No.2450 投稿時間:2004年01月23日(Fri) 22:32 投稿者名:J-ker URL:
タイトル:Re: owner問題とsuexec問題でしょう。

>さっそく
User nobody
Group nobody
を、
User apache
Group apache
にしたのですが、やはりまだCGIが動作しません。

そこで、
/usr/sbin/suexec 
を確認しようと思って
# vi /usr/sbin/suexec で開いたのですが文字化けして確認することができませんでした。

それと、
#公開するフォルダ
DocumentRoot "/home/public_html"
になっていましたが、CGIを動かすために色々試しているときに、
DocumentRootではCGIが問題なく動くので、
DocumentRootを/homeに持っていけばCGIが動作するのでゎ・・・
と考えてやっていた httpd.confをUpしたようで、(結局動きませんでしたが・・・)
本来は /var/www/public_html におく予定でした。

それで今回編集した httpd.conf を又Upしました

http://carrot.cafenet.jp/clip/img/47.txt

それと過去ログ1451を探したのですが・・・ワード検索では、でなくて
どうやって見ればいいのかわかりません ;;


No.2451 投稿時間:2004年01月23日(Fri) 22:56 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:lsで見てください。

> /usr/sbin/suexec 
> を確認しようと思って
> # vi /usr/sbin/suexec で開いたのですが文字化けして確認することができませんでした。

suexecのownerとgroupを確認したいのですから

 ls -al /usr/sbin/suexec

ですね。owner:root、group:apacheか確認してください。

> それと、
> #公開するフォルダ
> DocumentRoot "/home/public_html"
> になっていましたが、CGIを動かすために色々試しているときに、
> DocumentRootではCGIが問題なく動くので、
> DocumentRootを/homeに持っていけばCGIが動作するのでゎ・・・
> と考えてやっていた httpd.confをUpしたようで、(結局動きませんでしたが・・・)
> 本来は /var/www/public_html におく予定でした。

 /homeのほうが、階層構造がはっきりするのでは?

> それと過去ログ1451を探したのですが・・・ワード検索では、でなくて
> どうやって見ればいいのかわかりません ;;

 過去ログP0003の[7]です。P0003で1451で検索してもでます。


No.2452 投稿時間:2004年01月24日(Sat) 00:04 投稿者名:J-ker URL:
タイトル:Re: lsで見てください。

早速lsで確認してみたところ、root apache になっていました
# ls -al /usr/sbin/suexec
-r-s--x--- 1 root apache 48741 2月 25 2003 /usr/sbin/suexec

過去ログをあわせて見てみました、
httpd.conf は
User apache
Group apache
にしてあります。

httpdのエラーログを見てみたところ
Premature end of script headers: pass.cgi, referer: http://j-ker.
failed to open log file, referer: http://j-ker.
fopen: Permission denied, referer: http://j-ker.
とでていました

次に、CGIのパーミッションを確認しましたが正しく設定してあります

# tail /etc/httpd/logs/suexec.log と打つと、
[2004-01-23 23:49:00]: uid: (501/ezweb) gid: (501/501) cmd: ezbio.cgi
[2004-01-23 23:55:20]: uid: (501/ezweb) gid: (501/501) cmd: pass.cgi
こうでていました。


No.2453 投稿時間:2004年01月24日(Sat) 00:51 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:suexecやowner関係は問題ないようです。

user/groupを戻したので、suexecやowner関係は問題ないようです。

> httpdのエラーログを見てみたところ
> Premature end of script headers: pass.cgi, referer: http://j-ker.
> failed to open log file, referer: http://j-ker.
> fopen: Permission denied, referer: http://j-ker.
> とでていました

 これが原因です。1行目は、下記を参考にしてください。ftpで転送しましたか?

 http://www.aconus.com/~oyaji/faq/apache_cgi3.htm

 2行目logfileをあらかじめ作っておかないとだめなcgiなのでは?マニュアルを
見直してはどうですか?
 3行目は???。2行目のの関係?


No.2458 投稿時間:2004年01月24日(Sat) 15:45 投稿者名:J-ker URL:
タイトル:Re: suexecやowner関係は問題ないようです。

夜遅くレスありがとうございます

パーミッション確認しましたが・・・正しく設定しているみたいです

ほかのCGIにアクセスした場合は、

Premature end of script headers: ezbio.cgi
failed to open log file
fopen: Permission denied

Premature end of script headers: ezmatch.cgi
failed to open log file
fopen: Permission denied

Premature end of script headers: imodebbs.cgi
failed to open log file
fopen: Permission denied

全部同じError msgが出るので、
おやじさんのHPにあるテスト例のCGI

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "Your_IP=$ENV{'REMOTE_ADDR'}\r\n";

を、test.cgiとして、
# useradd -s /sbin/nologin joker
# chmod 711 /home/joker
FFFTPでログインし、
publi_html 755 [joker:joker]
を作成し、以下のように転送して、
/home/joker/public_html/test/test.cgi
home 755 [root:root]
joker 711 [joker:joker]
public_html 755 [joker:joker]
test 755 [joker:joker]
test.cgi 755 [joker:joker]
設置したところ、

Premature end of script headers: test.cgi
failed to open log file
fopen: Permission denied

と、やはりでてしまいました ;;


No.2459 投稿時間:2004年01月24日(Sat) 16:10 投稿者名:J-ker URL:
タイトル:Re^2: suexecやowner関係は問題ないようです。

httpd.conf をいじりすぎたかなぁ・・・って思って

一回 httpd を初期化し、
httpd.conf をおやじさんのHPを見ながら設定してみました

結果・・やはり動きませんでした ;;

http://carrot.cafenet.jp/clip/img/48.txt


No.2462 投稿時間:2004年01月24日(Sat) 18:30 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/
タイトル:基本的にユーザ管理が間違っています。

やっとわかりましたよ。基本的に間違っています。

> # useradd -s /sbin/nologin joker

 これはないです。nologinではFTPでログインもできないのでは?
どうやって、コンテンツをjokerのホームディレクトリに置いたのでしょうか?

# useradd -g users -d /home/joker -s /bin/bash -c joker joker
# passwd joker
Changing password for user joker.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

と、シェルは/bin/bashでusersグループで登録して

> # chmod 711 /home/joker
> FFFTPでログインし、
> publi_html 755 [joker:joker]

 は駄目で、

publi_html 755 [joker:users]

以下同様にusersグループにして

> を作成し、以下のように転送して、
> /home/joker/public_html/test/test.cgi
> home 755 [root:root]
> joker 711 [joker:users]
> public_html 755 [joker:users]
> test 755 [joker:users]
> test.cgi 755 [joker:users]

で、OKなはずです。


No.2464 投稿時間:2004年01月24日(Sat) 19:56 投稿者名:J-ker URL:
タイトル:Re: 基本的にユーザ管理が間違っています。

なぜ -s /sbin/nologin にしてたのでしょう・・・
けどFTPで普通にログインできました

ttssh ttermpro 、 WinSCP ではログイン弾かれます

早速、
# userdel joker
# useradd -g users -d /home/joker -s /bin/bash -c joker joker
とうってグループを確認してみると、なぜか510になっていたので、
新しくユーザーを追加しました

# useradd -g users -d /home/j-ker -s /bin/bash -c j-ker j-ker
Groupをusersに、Shellを/bin/bashに、Comment j-ker 、 j-kerを追加
# passwd j-ker

確認したらgroupはちゃんとusersになっていましたので、
j-ker [users:j-ker] 711
public_html [users:j-ker] 755
test [users:j-ker] 755
test.cgi [users:j-ker] 755 改行LF
と設置したところ、やはり動作しません

/etc/httpd/logs/suexec を確認したところ

Premature end of script headers: test.cgi

いままでは3行ほどあったのですが、これだけになっていました。

過去ログに
tail /etc/httpd/logs/suexec.log
を見てみると・・っていうのがあったので

早速見てみると
[2004-01-24 20:15:04]: uid: (511/j-ker) gid: (100/100) cmd: bbs.cgi
[2004-01-24 20:15:04]: cannot run as forbidden gid (100/bbs.cgi)

になっていました

http://j-ker.no-ip.com/~j-ker/test/test.cgi
では動作しないのですが・・・
http://j-ker.no-ip.com/j-ker/public_html/test/test.cgi
では動作します・・ 


No.2466 投稿時間:2004年01月24日(Sat) 20:20 投稿者名:J-ker URL:
タイトル:suEXECのログを見てみると

>[2004-01-24 20:15:04]: cannot run as forbidden gid (100/bbs.cgi)

cannot run as forbidden gid‥‥‥‥‥グループIDが100未満なので実行できない

ということらしいのですが、J-kerには理解に苦しく・・


No.2473 投稿時間:2004年01月26日(Mon) 21:00 投稿者名:J-ker URL:
タイトル:原因わかりました

解決したかなーて思ってたら実は未解決でした

原因はFTPにありました

WinSCPでログインしてファイルを転送すると問題なくCGIが動作するのですが
FFFTPでログインしてファイルを転送するとCGIが動作しません・・。

今まで vsftpd を使っていたのですが、
おやじさんのHPを見ながら ProFTPDに Tryしてみます 


No.2486 投稿時間:2004年01月28日(Wed) 01:42 投稿者名:mogura URL:
タイトル:Re: 原因わかりました

> WinSCPでログインしてファイルを転送すると問題なくCGIが動作するのですが
> FFFTPでログインしてファイルを転送するとCGIが動作しません・・。

途中で割り込んですいません。
もしやFFFTPの転送モードの設定では?
CGIスクリプトはアスキーモードでアップロードされてます?


No.2487 投稿時間:2004年01月28日(Wed) 06:11 投稿者名:J-ker URL:
タイトル:Re^2: 原因わかりました

はい 拡張子で自動で判断してFFFTPで転送してくれるので・・・

それで vsftpd をやめて、 ProFTPD をつかったところ

無事CGIも動作してくれました

FFFTPの chrootの設定が間違ってたのかもしれません・・・

chroot の設定をみたHPがRedhat7〜で、今の環境と違ったからからかな・・

無事解決しました^^



掲示板▲頁先頭