>Большушее вам Спасибо! Скиф, но у меня почему-то все оставлось по прежнему!
>
>темболее я делал такую проверку уже! не мне всеравно выдает
>
>Insecure dependency in system while running with -T switch at ./pptp-command253
>line 843. Цитирую:
---------------
Попытка сделать что-то, непонравившееся механизму меченных данных. Этот механизм включается, когда выполняется setuid или setgid, либо задан -T для явного его включения. Он помечает все данные явно или косвенно полученные от пользователя, которые считаются недостояными доверия. Если такие данные используются в "опасной" операции, то генерируется сообщение об этой ошибке.
---------------
"Программирование на Perl", Лари Уолл, стр. 1011
system как раз и неявляется секурной.
Отсюда, с какими ключами и опциями пускается скрипт (#!/usr/bin/perl _чего_тут_написано_ + use _чего_пользуем_)
Цитирую:
---------------
-T Включает проверки "меченых" данных("taint" checks), которые становиться возможным использовать. Обычно эти проверки осуществляются только при установленых setuid или setgid. Неплохо явно включить их для программ, выполняемых от другого имени, таких как CGI.
Обратите внимание, что по соображениям безопасности Perl должен увиденть этот параметр как можно раньшеl; обычно это значит, что он должен стоят в начале командной строки или строки #!.
---------------
Там же, стр. 552
Ну с этим разобрались.
>
>Поэтому то я и спрашиваю в чем может быть дело!
>Спасбо еще раз!
Если строка 843 это и есть вызов system, то отсюда выход проверить $pid + явно указать расположение kill:
$pid =~ /$unsafe_re/o;
warn $pid;
system "kill -HUP $pid";
warn "kill -HUP $pid";
или
$pid =~ /$unsafe_re/o;
warn $pid;
system "/bin/kill -HUP $pid";
warn "/bin/kill -HUP $pid";
Ну и в заключение, а что мешает использовать встроенную функцию kill? Философия или религия?
root@fbsd2.home /usr/home/skif :perldoc -f kill
kill SIGNAL, LIST
Sends a signal to a list of processes. Returns the number of
processes successfully signaled (which is not necessarily the
same as the number actually killed).
$cnt = kill 1, $child1, $child2;
kill 9, @goners;
If SIGNAL is zero, no signal is sent to the process. This is a
useful way to check that a child process is alive and hasn't
changed its UID. See perlport for notes on the portability of
this construct.
Unlike in the shell, if SIGNAL is negative, it kills process
groups instead of processes. (On System V, a negative PROCESS
number will also kill process groups, but that's not portable.)
That means you usually want to use positive not negative sig-
nals. You may also use a signal name in quotes.
See "Signals" in perlipc for more details.
root@fbsd2.home /usr/home/skif :kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP
TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2