FreeBSD 5.4.
Exim-4.51Кусок конфы по этому поводу в секции роутеров:
localmaildiruser:
driver = queryprogram
command = /bin/echo
command_user = 26
command_group = 26В /etc/passwd: 26 = mailnull
В логах:
localmaildiruser router: command returned non-zero code 127
Пробовал заняться дебугингом - ничего кроме повторения инфо из лога не получил.
В документации пишут, что 127 код возвращается когда накосячено с правами или команда не существует - execve() не может работать:
# ps -aux |grep exim
---cut---
mailnull 60966 0,0 0,3 5564 2800 ?? I 11:18 0:00,00 /usr/local/sbin/exim -bd -q30m (exim-4.51)
root 60989 0,0 0,3 5680 2880 ?? I 11:18 0:00,00 /usr/local/sbin/exim -q (exim-4.51)
---cut---
# ls -la /bin/echo
-r-xr-xr-x 1 root wheel 3992 2005-05-08 07:01 /bin/echo*Где рыть?? Подскажите пожалуйста.
>Где рыть?? Подскажите пожалуйста.ВсЕ забили на нашу проблему :))))
Окей, могу понять.
Мы немного поменяли условия, и решили запускать перловые скрипты встроенным интерпретатором Exim.Возникают следующие проблемы:
запуск перловой процедуры из MTA Exim (работает вполне нормально):
address_data = ${perl{sendAuthReq}}
Это в конфигурации exim.сама процедура в перле:
sub sendAuthReq
{
... пропущено...
my $user = Exim::expand_string{'$local_part'};
Exim::log_write("Ive got user = " . $user . "\n");
.. пропущено...
}
В логах Exima:
2005-06-28 14:28:34 Ive got user = HASH(0x8136170)В документации Exim:
Within any Perl code called from Exim, the function Exim::expand_string is available to call back into Exim's string expansion function. For example, the Perl codemy $lp = Exim::expand_string('$local_part');
makes the current Exim $local_part available in the Perl variable $lp. Note those are single quotes and not double quotes to protect against $local_part being interpolated as a Perl variable.$local_part содержит в себе часть емылового адреса до собаки.
---------------------------
пробую дебугом:прибавляю в конфигурацию exim:
debug_print $local_part
там где address_data = ${perl{sendAuthReq}}
и запускаю его с флагом отладки...
в STDERRе:
......... пропущено ......
37835 --------> localuser router <--------
37835 local_part=mail-test domain=мой_хост.мой_домен.ru
37835 expanding: $local_part
37835 result: mail-test
37835 mail-test
37835 processing address_data
37835 expanding: sendAuthReq
37835 result: sendAuthReq
37835 Starting Perl interpreter
37835 LOG: MAIN
37835 Ive got user = HASH(0x8136170)
37835
37835 LOG: MAIN
37835 maildir= quota= user=HASH(0x8136170)
37835
.......... пропущено. ........Как сие понять?? С чего эта падла вставляет хэш вместо нормального логина до собаки?
Ладна.. Видать это по принципу цвета фонарей для велосипедов.
Чем сложнее вопрос, тем меньше людей участвуют в дискуссии ;))
Пишу в maillist разработчиков....