5

モードで実行Inline::Pythonしているときにこのコンパイル時エラー メッセージが表示される理由は何ですか?-T

/usr/local/lib/perl/5.14.2/Inline/Python.pm 行 193 で -T スイッチを使用して実行している場合、open での依存関係が安全ではありません。

行 193 はInline::Pythonopensの場所で$o->{API}{location}、これを「インライン DIRECTORY」とします。

もちろん、必要なオプションを使用しました。

use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT         => 1,
                     NO_UNTAINT_WARN => 1,
                     DIRECTORY       => _INLINE_DIR_;

私は/var/myapp/inline、その中のすべてが誰でも書き込み可能であることを確認しました。明らかに、アプリケーションがsetuid実行時に実行されるルートとユーザーの両方を含みます。

Inline0.50 Inline::Python0.43 を実行して、root として起動するかどうかに関係なく、まったく同じスクリプトが私のコンピューターで問題なく動作しますが、同じバージョンのInline::Python0.49 または 0.55 のいずれかを使用するサーバーで実行しようとすると、このエラーが発生します。 Inline.

4

1 に答える 1

1

これは環境によって異なるため、構成パラメーターによって要求されたステップを実行する前に、Inlineまたは読み取り中の環境変数が何らかの形であると思います。Inline::PythonUNTAINT

(コメントに反して、ファイルのアクセス許可がこのメッセージを引き起こす可能性はないと思います。コマンドラインパラメーターまたは環境変数への依存関係が安全でないだけです)

それを考慮して、環境を強制的にクリアし、必要なことがわかっている環境変数のみを追加して、スクリプトを開始します。

%ENV = ();
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';  # Or whatever's appropriate
$ENV{'PYTHONPATH'} = '/usr/local/lib/python';   # Optional, if appropriate
# ... etc ...
于 2014-07-12T20:34:43.027 に答える