Назад | Перейти на главную страницу

Отказано в разрешении sendmail chdir (/ clientmqueue)

Мой сервер centos может отправлять почту с помощью команды mail, но не через php. Maillog говорит:

sendmail[18010]: NOQUEUE: SYSERR(nginx): can not chdir(/var/spool/clientmqueue/): Permission denied

Мои разрешения следующие:

lrwxrwxrwx 1 nginx nginx 30 Oct 30 20:27 /usr/lib/sendmail -> /etc/alternatives/mta-sendmail 
lrwxrwxrwx 1 nginx nginx 21 Oct 30 20:27 /usr/sbin/sendmail -> /etc/alternatives/mta

lrwxrwxrwx 1 nginx nginx 27 Oct 30  2012 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
lrwxrwxrwx 1 nginx nginx 26 Oct 30  2012 /etc/alternatives/mta-sendmail -> /usr/lib/sendmail.sendmail

lrwxrwxrwx 1 nginx nginx     16 Oct 30  2012 /usr/lib/sendmail.sendmail -> ../sbin/sendmail
-rwxr-xr-x 1 root  smmsp 775064 Aug 11  2011 /usr/sbin/sendmail.sendmail

Для чего нужны все эти ссылки?

Sendmail-8.12 + установка: права доступа к файлам

Бинарный файл Sendmail-8.12 + должен быть установлен как установлен ГРУППА мне бы.
(/usr/sbin/sendmail.sendmail в вашем случае)

Это описано в SECURITY файл в раздаче sendmail (.org):

-r-xr-sr-x  root   smmsp    ... /PATH/TO/sendmail
drwxrwx---  smmsp  smmsp    ... /var/spool/clientmqueue

Также существует логическая политика SELINUX, называемая httpd_can_sendmail .... Я почти уверен, что для нее также должно быть установлено значение true.

Если вы унаследовали систему и хотите изменить расположение / var / spool / mqueue на другое место, и когда вы изменяете свой sendmail.mc и повторно создаете sendmail.cf или редактируете каталог sendmail.cf, и вы запускаете sendmail, и он жалуется "Permission denied" и ничего из вышеперечисленного не помогает - попробуйте это. Даже если вы полностью отключили SELINUX и т. Д.

Я прошел через все вышеперечисленные предложения по многочисленным системам на протяжении многих лет, и независимо от того, что это за пользователь, какой setgid установлен в sendmail или какие разрешения и информация о владении есть в любом каталоге, я все равно получаю ошибку. В каждом случае я обнаруживал, что это было что-то с существующей установленной версией sendmail. Даже если он самый последний. В каждый случае я смог преодолеть проблему:

  1. сделайте резервную копию sendmail.mc или sendmail.cf, если вы не собираете из mc файла
  2. сделайте резервную копию псевдонимов, virtusertable и т.д ... всех, потому что иногда переустановка перезаписывает их (обычно сохраняет их, но ...)
  3. удалить sendmail (например, "yum remove sendmail -y" или "apt remove sendmail -y")
  4. переустановите sendmail (например, "yum install sendmail sendmail-cf -y" или "apt install sendmail sendmail-cf -y"

Кажется, переустановка решила проблему.

Возможно, вам потребуется обновить / etc / sysconfig / sendmail, указав местоположение вашего файла sendmail.cf с измененным QUEUEDIR, а затем, возможно, запустить "journalctl daemon-reload", чтобы исправить это, тогда он должен работать.

Это своего рода проблема с OEM-версией sendmail, такая как отсутствие smmsp пользователя / группы и т.д., но это самый простой способ решить эту проблему при современной установке Linux.