Saya telah menginstal Dovecot v2.0.11 pada server FreeBSD dan pencarian pengguna untuk alamat email yang masuk gagal, tetapi pencarian untuk pengguna sistem berhasil.
Dovecot diatur untuk menggunakan pengguna sistem, jadi dovecot.conf saya sudah
userdb {
driver = passwd
}
dan
passdb {
driver = passwd
}
Saya memiliki auth debug diaktifkan.
Misalnya, saya memiliki pengguna yang disebut webmaster, dan menggunakan pengguna doveadm untuk "webmaster" berfungsi sebagai berikut:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Namun menggunakan pengguna doveadm untuk mencari [email protected] gagal sebagai berikut:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Ini menghasilkan email masuk untuk [email protected] memantul dengan kesalahan "pengguna tak dikenal".
Inilah kegagalan login / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Inilah kegagalan login /var/log/debug.log:
Apr 16 20:13:35 www dovecot: auth: Debug: master in: USER 1 [email protected] service=doveadm
Apr 16 20:13:35 www dovecot: auth: Debug: passwd([email protected]): lookup
Apr 16 20:13:35 www dovecot: auth: Debug: master out: NOTFOUND 1
Para pengguna dan direktori home mereka diimpor dari server lain dan para pengguna diatur menggunakan alat vipw. Saya yakin ada sesuatu yang saya lewatkan pada impor yang tidak "menghubungkan" pengguna sistem dengan pencarian dovecot.
Adakah ide tentang sesuatu itu?
EDIT: Menggunakan saran BillThor, saya memperbarui dovecot.conf sebagai berikut:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Namun, sekarang, pengguna doveadm gagal dengan cara yang berbeda:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
Dan, itu tidak lagi berfungsi untuk pengguna tanpa domain:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Ketika saya mendapatkan pesan di atas, berikut ini ada di / var / log / maillog:
Apr 17 17:30:02 www dovecot: auth: Fatal: passdb passwd: Unknown setting: username_format=%u
Apr 17 17:30:02 www dovecot: master: Error: service(auth): command startup failed, throttling
Saya menggunakan Ubuntu Server 12.04 dan saya mencoba solusi di atas. Namun, saya menemukan bahwa cara termudah dan termudah adalah di 10-auth.conf untuk ditetapkan
Saya menggunakan PAM untuk otentikasi yang merupakan default di Ubuntu 12.04.
sumber
Saya menduga bahwa Dovecot 2.1 memecahkan solusi ini atau telah mengubah perilaku yang diharapkan.
Saya telah melacak kesalahan otorisasi yang sama dengan userdb:
Ketika pengguna lokal (non-virtual) menerima email melalui exim-> lmtp itu termasuk domain. Menentukan auth_username_format =% Ln memang memperbaiki pengiriman lokal, tetapi itu merusak pengiriman virtual. Perbaikan yang ditambahkan untuk menambahkan args = username_format tampaknya diabaikan:
dan log menyertakan peringatan
Menariknya, menggunakan file passwd tidak bekerja , tetapi auth marah bahwa file passwd dimiliki oleh root.
sumber
passwd-file: Unknown setting: username_format
Bagi saya alasannya adalah ruang ekstra:yaitu saya memiliki dua ruang antara CRYPT dan uesrname.
sumber