Я настраиваю Postfix для использования внешнего smtp. Для этого я использовал этот учебник
После этого я обнаружил в журналах, что /etc/postfix/sasl_passwd.db
не читается. Файл не существует. Я использовал хеш postmap: / etc / postfix / sasl_passwd (http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html) как root, но я получаю:
postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied
Почему я это получаю?
OS: Fedora 14
User "postfix" exists.
Обновить:
sudo ls -l /etc/postfix/sasl_passwd.db ls:
cannot access /etc/postfix/sasl_passwd.db: No such file or directory
touch /etc/postfix/sasl_passwd.db
chmod 640 /etc/postfix/sasl_passwd.db
chown postfix:root /etc/postfix/sasl_passwd.db
sudo ls -l /etc/postfix/sasl_passwd.db
-rwxr--r--. 1 postfix root 0 Feb 19 04:16 /etc/postfix/sasl_passwd.db
-rw-r-----. 1 postfix root 0 Feb 19 04:16 /etc/postfix/sasl_passwd.db
postmap hash:/etc/postfix/sasl_passwd
postmap: fatal: cannot remove zero-length database file /etc/postfix/sasl_passwd.db: Permission denied.
chmod 777
дает ту же ошибку, что и выше.
Вам необходимо убедиться, что пользователь postfix может читать этот файл. Вы можете опубликовать вывод $ sudo ls -l /etc/postfix/sasl_passwd.db
чтобы получить дополнительную помощь.
Чтобы создать этот файл, вы можете использовать команду:
$ sudo postmap sasl_passwd
Это создаст .db
файл.
Эта проблема, по крайней мере в Ubuntu 12.04, вызвана тем, что папка / etc / postfix не принадлежит пользователю postfix. (как указано выше).
Сообщение об ошибке вызвано тем, что вы не должны напрямую создавать файл .db самостоятельно. Если да, удалите его.
postmap: fatal: cannot remove zero-length database file /etc/postfix/sasl_passwd.db: Permission denied.
Простое решение исходной проблемы:
sudo chown postfix /etc/postfix
После этого вы можете запустить это
sudo postmap sasl_passwd
Предполагается, что ваши пароли в открытом виде находятся в файле sasl_passwd
Сменить владельца
корень chown: wheel policy_file