Welcome! Log In Create A New Profile

Advanced

mail в chroot

Posted by andrey@mirhosting.com 
andrey@mirhosting.com
mail в chroot
March 04, 2010 11:24AM
Здравствуйте,

Столкнулся с интересной проблемой, не знаю баг это или нечто доступное
моим познаниям..
Стоит nginx + php-fpm
последний chroot`ит каждый домен.

Все работает замечательно и прекрасно кроме функции mail, которая
работает, точнее не работает весьма интересным образом.

Внутрь chroot был поставлен mini-sendmail, также пробывал ssmtp
Если я захожу в chroot

# chroot /home/username
и делаю так:
# cat /message | /usr/sbin/sendmail -t -i
то письмо замечательно отсылается.
bash-3.2# cat /message
To:my@email
Subject: Here is subject
Hello,
This is a message

Когда запускаю скрипт php - ничего не отсылается.

При этом, логи в файле через mail.log пишутся.

Вместо /usr/sbin/sendmail поставил простенький sh скрипт, который
сохраняет в файл все что получает. Опять же, при
# cat /message | /usr/sbin/sendmail -t -i
сохраняет правильно, при запуске скрипта - пусто.

В error логах php-fpm, nginx само собой пусто.

Последняя версия nginx, php-fpm на php 5.3.1
sendmail_path /usr/sbin/sendmail -t -i
Sergey Smitienko
Re: mail в chroot
March 04, 2010 11:40AM
/bin/sh внутри chroot'а есть?Из под php запустить /bin/sh можете? Прав
на это хватает?

4 марта 2010 г. 18:20 пользователь andrey@mirhosting.com
<andrey@mirhosting.com> написал:
> Здравствуйте,
>
> Столкнулся с интересной проблемой, не знаю баг это или нечто доступное
> моим познаниям..
> Стоит nginx + php-fpm
> последний chroot`ит каждый домен.
>
> Все работает замечательно и прекрасно кроме функции mail, которая
> работает, точнее не работает весьма интересным образом.
>
> Внутрь chroot был поставлен mini-sendmail, также пробывал ssmtp
> Если я захожу в chroot
>
> # chroot /home/username
> и делаю так:
> # cat /message | /usr/sbin/sendmail -t -i
> то письмо замечательно отсылается.
> bash-3.2# cat /message
> To:my@email
> Subject: Here is subject
> Hello,
> This is a message
>
> Когда запускаю скрипт php - ничего не отсылается.
>
> При этом, логи в файле через mail.log пишутся.
>
> Вместо /usr/sbin/sendmail поставил простенький sh скрипт, который
> сохраняет в файл все что получает. Опять же, при
> # cat /message | /usr/sbin/sendmail -t -i
> сохраняет правильно, при запуске скрипта - пусто.
>
> В error логах php-fpm, nginx само собой пусто.
>
> Последняя версия nginx, php-fpm на php 5.3.1
> sendmail_path   /usr/sbin/sendmail -t -i
Andrey
Re: mail в chroot
March 04, 2010 11:52AM
Был /bin/bash. Сейчас поставил и /bin/sh
Сделал файл php вида

<?php
passthru("/bin/sh 1");
?>

файл 1:

echo 'Hey'
exit 0

Все отрабатывает через php замечательно
mail после копирования /bin/sh не заработало (

On Mar 4, 5:38 pm, Sergey Smitienko <sergey.smitie...@gmail.com>
wrote:
> /bin/sh внутри chroot'а есть?Из под php запустить /bin/sh можете? Прав
> на это хватает?
>
> 4 марта 2010 г. 18:20 пользователь and...@mirhosting.com
> <and...@mirhosting.com> написал:
>
> > Здравствуйте,
>
> > Столкнулся с интересной проблемой, не знаю баг это или нечто доступное
> > моим познаниям..
> > Стоит nginx + php-fpm
> > последний chroot`ит каждый домен.
>
> > Все работает замечательно и прекрасно кроме функции mail, которая
> > работает, точнее не работает весьма интересным образом.
>
> > Внутрь chroot был поставлен mini-sendmail, также пробывал ssmtp
> > Если я захожу в chroot
>
> > # chroot /home/username
> > и делаю так:
> > # cat /message | /usr/sbin/sendmail -t -i
> > то письмо замечательно отсылается.
> > bash-3.2# cat /message
> > To:my@email
> > Subject: Here is subject
> > Hello,
> > This is a message
>
> > Когда запускаю скрипт php - ничего не отсылается.
>
> > При этом, логи в файле через mail.log пишутся.
>
> > Вместо /usr/sbin/sendmail поставил простенький sh скрипт, который
> > сохраняет в файл все что получает. Опять же, при
> > # cat /message | /usr/sbin/sendmail -t -i
> > сохраняет правильно, при запуске скрипта - пусто.
>
> > В error логах php-fpm, nginx само собой пусто.
>
> > Последняя версия nginx, php-fpm на php 5.3.1
> > sendmail_path   /usr/sbin/sendmail -t -i
>
>
Re: mail в chroot
March 04, 2010 12:08PM
Здравствуйте!

4 марта 2010 г. 19:20 пользователь andrey@mirhosting.com
<andrey@mirhosting.com> написал:

> В error логах php-fpm, nginx само собой пусто.
А какой error_reporting?

Получается ли cat /message | /usr/sbin/sendmail -t -i из под
ограниченного пользователя?

Получается ли отправить почту из php через popen(/usr/sbin/sendmail -t -i)?

--
С уважением, Борис Долгов.
icq 77556665
e-mail boris@dolgov.name
Andrey
Re: mail в chroot
March 04, 2010 09:52PM
> А какой error_reporting?
error_reporting(E_ALL);
>
> Получается ли cat /message | /usr/sbin/sendmail -t -i из под
> ограниченного пользователя?

Да, я же писал
Если я захожу в chroot
# chroot /home/username
и делаю так:
# cat /message | /usr/sbin/sendmail -t -i
то письмо замечательно отсылается.
> Получается ли отправить почту из php через popen(/usr/sbin/sendmail -t -i)?
да. но это не вариант.. скрипты все не перепишешь :)
Re: mail в chroot
March 04, 2010 11:46PM
5 марта 2010 г. 1:13 пользователь Andrey <andrey@mirhosting.com> написал:
>> Получается ли cat /message | /usr/sbin/sendmail -t -i из под
>> ограниченного пользователя?
>
> Да, я же писал
> Если я захожу в chroot
> # chroot /home/username
> и делаю так:
> # cat /message | /usr/sbin/sendmail -t -i
> то письмо замечательно отсылается.
Насколько я понимаю, после chroot Вы вошли как root, а не как обычный
пользователь.

>> Получается ли отправить почту из php через popen(/usr/sbin/sendmail -t -i)?
> да. но это не вариант.. скрипты все не перепишешь :)
Странно и непонятно :)

Можно попробовать ограничить количество воркеров до 1, прийти на него
через strace -f -p его_пид -o logfile, сделать запрос, посмотреть, что
было в районе vfork и execve.
coolchevy
Re: mail в chroot
March 07, 2010 09:50PM
в свое время я наступал на грабли
1. неправильный/некоректный шел (не все либы, +x)
2. все либы должны иметь право на исполнение от вашего пользователя,
ну и доступ собственно к ним.

иначе только strace поможет

советую посмотреть на bash_static & mini_sendmail


On 5 мар, 06:45, Борис Долгов <bo...@dolgov.name> wrote:
> 5 марта 2010 г. 1:13 пользователь Andrey <and...@mirhosting.com> написал:>> Получается ли cat /message | /usr/sbin/sendmail -t -i из под
> >> ограниченного пользователя?
>
> > Да, я же писал
> > Если я захожу в chroot
> > # chroot /home/username
> > и делаю так:
> > # cat /message | /usr/sbin/sendmail -t -i
> > то письмо замечательно отсылается.
>
> Насколько я понимаю, после chroot Вы вошли как root, а не как обычный
> пользователь.
>
> >> Получается ли отправить почту из php через popen(/usr/sbin/sendmail -t -i)?
> > да. но это не вариант.. скрипты все не перепишешь :)
>
> Странно и непонятно :)
>
> Можно попробовать ограничить количество воркеров до 1, прийти на него
> через strace -f -p его_пид -o logfile, сделать запрос, посмотреть, что
> было в районе vfork и execve.
Aleksei Miheev
Re: mail в chroot
March 08, 2010 02:22AM
В mini_sendmail не всё гладко, я отправил патч авторам в amce, но
тишина:
http://ru.miheev.info/2009/08/21/mini_sendmail-common-names-patch.html
Дальше вроде бы работает без проблем, но вполне возможно, что это
клиенты тихие и скромные.

В Sun, 7 Mar 2010 14:24:10 -0800 (PST)
coolchevy <coolchevy@gmail.com> пишет:

> в свое время я наступал на грабли
> 1. неправильный/некоректный шел (не все либы, +x)
> 2. все либы должны иметь право на исполнение от вашего пользователя,
> ну и доступ собственно к ним.
>
> иначе только strace поможет
>
> советую посмотреть на bash_static & mini_sendmail
>
>
> On 5 мар, 06:45, Борис Долгов <bo...@dolgov.name> wrote:
> > 5 марта 2010 г. 1:13 пользователь Andrey <and...@mirhosting.com>
> > написал:>> Получается ли cat /message | /usr/sbin/sendmail -t -i из
> > под
> > >> ограниченного пользователя?
> >
> > > Да, я же писал
> > > Если я захожу в chroot
> > > # chroot /home/username
> > > и делаю так:
> > > # cat /message | /usr/sbin/sendmail -t -i
> > > то письмо замечательно отсылается.
> >
> > Насколько я понимаю, после chroot Вы вошли как root, а не как
> > обычный пользователь.
> >
> > >> Получается ли отправить почту из php через
> > >> popen(/usr/sbin/sendmail -t -i)?
> > > да. но это не вариант.. скрипты все не перепишешь :)
> >
> > Странно и непонятно :)
> >
> > Можно попробовать ограничить количество воркеров до 1, прийти на
> > него через strace -f -p его_пид -o logfile, сделать запрос,
> > посмотреть, что было в районе vfork и execve.
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 153
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready