postmap: fatal: buka database /etc/postfix/sasl_passwd.db: Izin ditolak

9

Saya mengkonfigurasi Postfix untuk menggunakan smtp eksternal. Untuk ini, saya menggunakan tutorial ini

Setelah mengikutinya, saya menemukan di log yang /etc/postfix/sasl_passwd.dbtidak dapat dibaca. File tidak ada. Saya menggunakan hash postmap: / etc / postfix / sasl_passwd ( http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html ) sebagai root, tapi saya mendapatkan:

postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied

Mengapa saya mendapatkan ini?

OS: Fedora 14
User "postfix" exists.

Memperbarui:

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 memberikan kesalahan yang sama seperti di atas.

James Benders
sumber

Jawaban:

16

Anda perlu memastikan bahwa pengguna postfix dapat membaca file itu. Anda dapat memposting output $ sudo ls -l /etc/postfix/sasl_passwd.dbuntuk mendapatkan bantuan lebih lanjut.

Untuk membuat file ini, Anda dapat menggunakan perintah:

$ sudo postmap sasl_passwd

Ini akan membuat .dbfile.

Khaled
sumber
OK, saya mendapat: sudo ls -l /etc/postfix/sasl_passwd.db ls: tidak dapat mengakses /etc/postfix/sasl_passwd.db: Tidak ada file atau direktori seperti itu yang menyentuh /etc/postfix/sasl_passwd.db chmod 640 / etc / postfix postfix chown /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 postmap hash: / etc / postfix / sasl_passwd postmap: fatal: tidak dapat menghapus file basis data nol panjang /etc/postfix/sasl_passwd.db: Izin ditolak chmod 777 memberikan hal yang sama.
James Benders
Jadi, file tersebut tidak ada. Anda perlu membuatnya atau menemukan yang benar.
Khaled
Terima kasih atas balasan Anda, saya memperbarui jawaban saya. Silakan lihat di atas.
James Benders
Ini tidak jelas. Tolong, edit pertanyaan Anda sebagai gantinya! Apakah Anda membuat file menggunakan touch? Ini mungkin tidak sesuai.
Khaled
OK selesai. Ya saya menggunakan sentuhan, bagaimana saya membuatnya?
James Benders
10

Masalah ini, setidaknya pada Ubuntu 12.04, disebabkan oleh folder / etc / postfix yang tidak dimiliki oleh pengguna postfix. (seperti yang disimpulkan di atas).

Pesan kesalahan disebabkan karena Anda tidak harus secara langsung membuat file .db sendiri. Jika sudah, hapus saja.

postmap: fatal: cannot remove zero-length database file /etc/postfix/sasl_passwd.db: Permission denied.

Perbaikan sederhana untuk masalah aslinya adalah:

sudo chown postfix /etc/postfix

Setelah itu, Anda bisa menjalankan ini

sudo postmap sasl_passwd

Di mana diasumsikan kata sandi teks Anda yang jelas ada di file sasl_passwd

Tom Carchrae
sumber
1
Dikonfirmasi masih menjadi masalah @ 14.04
tamouse
dan dalam 16,04 lts
oligofren
0

Ubah pemiliknya

root chown: wheel policy_file

Pekerjaan Sintetis
sumber