On Fri, Aug 31, 2012 at 09:46:12AM +0400, Dmitry Chistikov wrote: DC> Или Вы про вот эту особенность: DC> If the header of a file isn't recognized (the attempted execve(2) failed with DC> the error ENOEXEC), these functions will execute the shell (/bin/sh) with the DC> path of the file as its first argument. (If this attempt fails, no further DC> searching is done.) Именно. DC> Короче говоря, если файл не является "настоящим" бинарником (a.out DC> dynamically linked binary executable, dynamically linked ELF executable) DC> и не является сценарием оболочки (interpreter script в терминах execve(2); DC> грубо говоря, в первой строке должен быть корректная #!-строка), DC> то системный вызов для него оболочку запускать и не будет. Заниматься DC> этой самодеятельностью будут разве что функции стандартной библиотеки - DC> или же пользовательские программы (возможно, и сами оболочки). Если я правильно понял последние две предложения, то execve попытается сам вызвать дефолтный /bin/sh, и только если обломается -- дальнейшеие попытки выполинть завершаться. -- С уважением, Денис http://mithraen.ru/ ----------------------------------------------------------------------------