Небезопасная зависимость с Inline::Python
Что может объяснить это сообщение об ошибке во время компиляции при запуске Inline::Python
в -T
Режим?
Небезопасная зависимость в открытом состоянии при запуске с ключом -T в строке /usr/local/lib/perl/5.14.2/Inline/Python.pm 193.
Линия 193 - это где Inline::Python
открывает $o->{API}{location}
, который я принимаю, чтобы быть "Действующим КАТАЛОГОМ".
Я, конечно, использовал необходимые параметры:
use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT => 1,
NO_UNTAINT_WARN => 1,
DIRECTORY => _INLINE_DIR_;
Я убедился, что /var/myapp/inline
и все внутри него доступно для записи всем, очевидно, включая как root, так и пользователя, что приложение setuid
'во время выполнения.
Тот же сценарий работает без проблем на моем компьютере, независимо от того, запускаю ли я от имени пользователя root или нет Inline
0,50 Inline::Python
0.43, но выдает мне эту ошибку, когда я пытаюсь запустить его на сервере, который использует ту же версию Inline::Python
и либо версия 0.49 или 0.55 Inline
,
1 ответ
Поскольку в разных средах это не так, я уверен, что есть переменная окружения, которая либо Inline
или же Inline::Python
читает, прежде чем он сделает шаг, запрошенный UNTAINT
параметр конфигурации
(В отличие от комментария, я не думаю, что права доступа к файлу могут вызвать это сообщение, только небезопасные зависимости от параметров командной строки или переменных среды)
Учитывая это, я бы начал ваш сценарий с принудительной очистки среды, а затем добавил бы только те переменные среды, которые вам нужны:
%ENV = ();
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin'; # Or whatever's appropriate
$ENV{'PYTHONPATH'} = '/usr/local/lib/python'; # Optional, if appropriate
# ... etc ...