Почему я получаю сообщение об ошибке при попытке отправить файл пароля sasl с постфиксом?

Я только что установил postfix как спутниковую систему. Мне нужно пройти аутентификацию на своих почтовых провайдерах. Там postfix нужно собрать базу данных sasl из моего файла sasl-passwd. Но это не в состоянии сделать это. Как я могу исправить эту ошибку (последняя строка)?:

root@confus:/etc/postfix# echo 'smtp_sasl_auth_enable = yes' >> main.cf
root@confus:/etc/postfix# echo 'smtp_sasl_security_options = noplaintext noanonymous' >> main.cf
root@confus:/etc/postfix# echo 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd' >> main.cf
root@confus:/etc/postfix# ll
total 116
drwxr-xr-x   3 root   root    4096 2011-06-03 13:56 ./
drwxr-xr-x 154 root   root   12288 2011-06-03 13:33 ../
-rw-r--r--   1 root   root     318 2011-06-03 13:32 dynamicmaps.cf
-rw-r--r--   1 root   root    1562 2011-06-03 13:53 main.cf
-rw-r--r--   1 root   root    5563 2011-06-03 13:32 master.cf
-rw-r--r--   1 root   root   19509 2011-05-10 15:06 postfix-files
-rwxr-xr-x   1 root   root    8729 2011-05-10 15:06 postfix-script*
-rwxr-xr-x   1 root   root   25752 2011-05-10 15:06 post-install*
drwxr-xr-x   2 root   root    4096 2011-05-10 15:06 sasl/
-rw-------   1 confus confus    51 2011-06-03 13:56 sasl_passwd
-rw-r--r--   1 root   root      28 2011-06-03 13:43 sender_canonical
-rw-r--r--   1 root   root   12288 2011-06-03 13:47 sender_canonical.db
root@confus:/etc/postfix# postmap sasl_passwd 
postmap: fatal: open database sasl_passwd.db: Permission denied
root@confus:/etc/postfix# postmap hash:sasl_passwd 
postmap: fatal: open database sasl_passwd.db: Permission denied

inb4 'sudo': обратите внимание на "root@confus"

5 ответов

Решение

"Вы должны убедиться, что пользователь postfix может прочитать этот файл. Вы можете опубликовать вывод sudo ls -l /etc/postfix/sasl_passwd.db чтобы получить больше помощи."

И из комментариев: "Измените владельца каталога конфигурации postfix на postfix, и это работает".

Источник

То же самое для меня, проблема хуже после этого

Linux ... 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux

повернуть назад:

chown root:root dynamicmaps.cf
chmod 644 dynamicmaps.cf

После попытки снова postmap sasl_passwd, sasl_passwd.db создан и выглядит хорошо

Команда postmap вызывает службу, работающую от имени пользователя postfix. Если вы хотите, чтобы ваша карта была создана в /etc/postfix, исправление с низким уровнем воздействия должно изменить только групповое владение каталогом. Это решает «предупреждение о праве собственности» и более поздние проблемы.

      chown postfix /etc/postfix
chmod g+rwx /etc/postfix

Мне не удалось заставить postmap правильно работать, когда присутствовал старый sasl_passwd.db. Переименование (или удаление) решило проблему и позволило postmap создать файл sasl_passwd.db.

      chown postfix /etc/postfix
chmod g+rwx /etc/postfix
cd /etc/postfix
mv sasl_passwd.db sasl_passwd.db.old
postmap sasl_passwd
service postfix restart

Вслед за ним следует старый добрый

      echo "test email" | mail -s "Postfix Test" Your@Email.com

Обычно это решает эту проблему

   cd /etc/postfix
   sudo chown -R postfix .
   sudo chgrp -R postfix .
   sudo chmod -R ugo+rwx .

Важно также сделать каталог postfix доступным для записи пользователем postfix, поскольку он иногда пытается создать или заменить файлы здесь (которые он, вероятно, должен хранить где-то еще!)

Другие вопросы по тегам