外部のSMTPを使用するようにPostfixを構成しています。このために、私は このチュートリアル を使用しました
それを追跡した後、ログで/etc/postfix/sasl_passwd.db
を読み取れませんでした。ファイルは存在しませんでした。ルートとしてpostmap hash:/ etc/postfix/sasl_passwd( http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html )を使用しましたが、次のようになります:
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 root:wheel policy_file