postmap: fatal: открыть базу данных /etc/postfix/sasl_passwd.db: разрешение запрещено

9

Я настраиваю 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 выдает ту же ошибку, что и выше.

Джеймс Бендерс
источник

Ответы:

16

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

Чтобы создать этот файл, вы можете использовать команду:

$ sudo postmap sasl_passwd

Это создаст .dbфайл.

Халед
источник
Хорошо, я получил: sudo ls -l /etc/postfix/sasl_passwd.db ls: не могу получить доступ к /etc/postfix/sasl_passwd.db: нет такого файла или каталога, коснитесь /etc/postfix/sasl_passwd.db chmod 640 / etc / postfix /sasl_passwd.db Чоун постфикс: 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 хэш почтовой карты: / etc / postfix / sasl_passwd postmap: fatal: невозможно удалить файл базы данных нулевой длины /etc/postfix/sasl_passwd.db: разрешение отклонено chmod 777 дает то же самое.
Джеймс Бендерс
Итак, файл не существует. Вам нужно создать его или найти правильный.
Халед
Спасибо за ваш ответ, я обновил свой ответ. Пожалуйста, смотрите это выше.
Джеймс Бендерс
Это неясно. Пожалуйста, отредактируйте свой вопрос! Вы создали файл, используя touch? Это может не подходить.
Халед
Окей, сделано. Да, я использовал сенсорный, как я должен создать его в противном случае?
Джеймс Бендерс
10

Эта проблема, по крайней мере в 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

Том Кэркра
источник
1
Подтверждено все еще проблема @ 14.04
tamouse
а в 16.04
олигофрен
0

Сменить владельца

chown root: wheel policy_file

SyntheticMeshwork
источник