68user's page 掲示板

Prev< No. 226〜230> Next  [最新発言に戻る] [過去ログ一覧]
No. 226 # M.Masuda 1999/03/26 (金) 00:00
>「suidperlを使う」ってのは...
やっぱだめです。なんでだろ?

ls -lの結果は
-rwsrwxr-x 1 root 501 342 Mar 25 23:41 su.cgi*
で、

su.cgiの内容は、

#!/usr/bin/suidperl
$|=1;
print "Content-type: text/html\n\n";
print "<html>";
print "<H3>su test</H3>";
print "<pre>\n";

print "#############################\n";

print "<hr>\n";

$_=system("cat /etc/ftpaccess");
print "$_\n";
print system("date>testfile");

print "</pre>";
print "<hr>";
print "</html>";
です。
試しに適当につくってあるので、内容が恥ずかしいんですが
#!/usr/bin/suidperl
の行も最初は普通にperlを指定したんだけどダメなので、
試しに上記の様にしてもやはりだめでした。
rootでコマンドラインから実行するとOKです。
もちろん /etc/ftpaccessは、600のパーミッションです。
う〜ん、わからん。
変なところが在ったら教えて下さい。
#ちなみにperlは日本語パッチが当たってますけど関係有ります?

それからもう一つお願いします。
aliasを使って、あるユーザに来たメールを転送させる設定は
/etc/aliasesに記述しないとだめなんでしょうか?

いつもいつも御世話になりっぱなしで申し訳ないですが、お師匠様
なにとぞ宜しくお願いします。m(_ _)m

No. 227 # 68user 1999/03/26 (金) 00:30
M.Masudaさん
> rootでコマンドラインから実行するとOKです。
一般ユーザでコマンドラインから実行するとどうなります?

> $_=system("cat /etc/ftpaccess");
> print system("date>testfile");
ここらへんがくさいです。httpdのエラーログに、PATHがどうこう、と出て
ませんか? うちは
    #!/usr/local/bin/perl
    print "Content-type: text/plain\n\n";
    open(IN,"/etc/ftepaccess");
    print <IN>;
でOKでした。CGIからでも うまくいきました。
    open(IN,"/bin/cat /etc/ftepaccess |");
だと、
    Insecure $ENV{PATH} while running setuid at ./a line 4.
とエラーになりました。あと、perl4ではsuidスクリプトは動かない
ようです。

> aliasを使って、あるユーザに来たメールを転送させる設定は
> /etc/aliasesに記述しないとだめなんでしょうか?
質問の意図がよくわかりません。どこか別のところに書きたいのでしょうか?

mmさん
> それとも、プロセスの終了を見て、システムが自動的に解放
> してくれるのでしょうか?
はい、勝手にfreeしてくれます。gethostbyaddrの件は少し調べてから…。

No. 228 # ROL 1999/03/26 (金) 00:51
LinuxWorldでredhatを入手して一週間!
ついにLinux起動いたしました(笑)
さぁ、次はインターネットに接続だ。

しかし、ここの話題についていけるようになるのに、どれだけの時間がかかるやら…(笑)

No. 229 # M.Masuda 1999/03/26 (金) 01:33
なぜじゃ〜どうしてじゃ〜←狭間かんぺい調(爆)
>一般ユーザで...

これもだめです。68Userさんが前に書いたとおりアクセス件が無いと
怒られます。
Insecure $ENV{PATH} while running setuid at ./su.cgi line 13.
と出ました。

>httpdのエラーログに、PATHがどうこう、と...
アパッチのerror_logは、だんまりです。(>_<)

>ここらへんがくさいです。
これも68Userさんと同じコードで試しました、がダメ。

ひとつ不思議を見つけました。
perl -c とすると、Args must match #! line at su.cgi line 1.
と出ます。

んっ!

とここまで書いて、他の事をいろいろ調べたらどうもこれが
前に疑問だった、suExecの機能のようです。
http://japache.infoscience.co.jp/japanese/manual/suexec.html
ってことは、68Userさんの環境はsuExecが実装された環境のようで
すね。
#今夜はずっとこの問題で格闘していたのでつかれた....ふげっ!

aliasの件は、ダミーユーザー(ログオンしない)宛のメールを管理
者に転送するという意味です。
#やってみれば分かりますね...(^^;
.bashrc等の設定ファイルに記述するのは、普通コマンドのailas
なのですか?

#なんかドッとつかれた....(T_T)

No. 230 # 68user 1999/03/26 (金) 02:20
うちでは #!/usr/local/bin/suidperl でも動きました。

> perl -c とすると、Args must match #! line at su.cgi line 1. と出ます。
suidスクリプトの実行時には、perlに渡す引数と
suidperlに渡す引数が同じでなくてはいけません。
# …と、青ラクダ本に書いてありました。

> これも68Userさんと同じコードで試しました、がダメ。
/usr/bin/perl は perl5 ですか?

FreeBSDの場合、FreeBSD 3.0R から /usr/bin/perl が perl5 に
なったのですが(それまではperl4)、その /usr/bin/perl は
suidperl が起動しないようになっていると聞きます。Linuxでも
OSの方針で、suidperlを実行しないようにコンパイルされている
のかもしれません。

> 68Userさんの環境はsuExecが実装された環境のようですね。
いえ、うちにはSuExecは入れてません。

何か問題が発生すると原因を切りわけていく必要があります。
httpdが原因かもしれないので、CGI経由で実行するより
コマンドラインで実行すべきかと思います。


> aliasの件は、ダミーユーザー(ログオンしない)宛のメールを管理
> 者に転送するという意味です。
ん〜、まだちょっと意味がわかりかねます。

> .bashrc等の設定ファイルに記述するのは、普通コマンドのailas
> なのですか?
そうです。コマンドの alias と /etc/aliases は全く別物です。

ROLさん
> ついにLinux起動いたしました(笑)
FreeBSDじゃないんですねぇ(^^;

> しかし、ここの話題についていけるようになるのに、どれだけの時間がかかるやら…(笑)
やる気があればすぐですよん。

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