[ruby-list:37714] Re: setuidと$SAFE

From: sakazuki <QZS01353@...>
Date: 2003-05-21 21:53:03 UTC
List: ruby-list #37714
sakazukiです。

> qmilのdot-qmailから起動させたスクリプトをset user idしていた場合
> $SAFE=1となることがわかりました。
> これはそういう仕様なのでしょうか?
> $SAFE=0のままにしておくことはできるのでしょうか?

わかりました。

ruby.cのinit_idsの中に

    if (uid && (euid != uid || egid != gid)) {
		rb_set_safe_level(1);
    }

という部分を見つけました。

実効ユーザIDと、実ユーザIDが違うか
実効グループIDと、実グループIDが違う場合には
$SAFE=1になるようですね。

eval.c:ruby_init -> ruby.c:ruby_prog_init -> ruby.c:init_ids

と呼ばれており、どうも回避する方法はないみたいですね。

---- sakazuki(QZS01353@nifty.ne.jp)
hp: http://homepage2.nifty.com/sakazuki/

In This Thread