[Dovecot-de] passdb didn't return userdb entries, trying the next userdb

Andreas Meyer anmeyer at anup.de
Do Apr 17 15:33:54 CEST 2014


Klaus Tachtler <klaus at tachtler.net> schrieb am 17.04.14 um 15:24:29 Uhr:

> Hallo Andreas,
> 
> > Hallo!
> >
> > Klaus Tachtler <klaus at tachtler.net> schrieb am 17.04.14 um 13:57:29 Uhr:
> >
> >> ich habe dovecot dazu gebracht sich erfolgreich gegen meine  
> >> MySQL-Datenbank zu
> >> authentifizieren.
> >>
> >> Wenn ich den Befehl:
> >> ===================
> >> # doveadm user klaus at tachtler.net
> >>
> >> absetze erhalte ich nachfolgende LOG-Meldung, die mich irritiert...
> >>
> >> ---- LOG ----
> >> ... dovecot: auth: Debug: master in:
> >> USER#0111#011klaus at tachtler.net#011service=doveadm
> >>
> >> ... dovecot: auth: Debug: prefetch(klaus at tachtler.net): passdb didn't
> >> return userdb entries, trying the next userdb
> >
> > klappt die Authentifizierung denn?
> 
> Ja, die Authentifizierung klappt --> Anmeldung via Horde/IMP

Ich finde die Meldungen von dovecot stellenweise irritierend.
Kommt diese irritierende Meldung auch, wenn Du das debuging
ausschaltest?

> --- LOG ---
> ... dovecot: auth-worker(5369): Debug:  
> sql(klaus at tachtler.net,192.168.0.60): query:
> SELECT username AS user, password, 10000 AS userdb_uid, 10000 as userdb_gid,
> '/var/spool/vmail/tachtler.net/klaus' AS userdb_home,
> concat('*:bytes=', quota) AS userdb_quota_rule FROM mailbox WHERE
> username = 'klaus at tachtler.net' AND active = 1
> ... dovecot: auth: Debug: client passdb out:  
> OK#01116#011user=klaus at tachtler.net
> ... dovecot: auth: Debug: master in:  
> REQUEST#011729546753#0112168#01116#01dcd97623e3c30ac23cce91ec1e454bcb3
> #011session_pid=4382#011request_auth_token
> ... dovecot: auth: Debug:  
> prefetch(klaus at tachtler.net,192.168.0.60,<hrKnIzz37AAKAAA8>): success
> --- LOG ---
> 
> Man beachte sogar die letzte Zeile...

Na dann.

> >> ... dovecot: auth-worker(3601): Debug: sql(klaus at tachtler.net): SELECT
> >> 10000 AS uid, 10000 as gid, '/var/spool/vmail/tachtler.net/klaus' AS
> >> home, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE
> >> username = 'klaus at tachtler.net' AND active = 1
> >> ... dovecot: auth: Debug: userdb out:
> >> USER#0111#011klaus at tachtler.net#011uid=10000#011gid=10000#011home=/var/spool/vmail/tachtler.net/klaus#011quota_rule=*:bytes=1048576000
> >> ---- LOG ----
> >>
> >> Meine 'password_query' sieht so aus:
> >> ===================================
> >> password_query = SELECT username AS user, password, 10000 AS
> >> userdb_uid, 10000 as userdb_gid, '/var/spool/vmail/%Ld/%Ln' AS
> >> userdb_home, concat('*:bytes=', quota) AS userdb_quota_rule FROM
> >> mailbox WHERE username = '%Lu' AND active = 1
> >>
> >> Meine 'user_query' sieh so aus:
> >> ==============================
> >> user_query = SELECT 10000 AS uid, 10000 as gid,
> >> '/var/spool/vmail/%Ld/%Ln' AS home, concat('*:bytes=', quota) AS
> >> quota_rule FROM mailbox WHERE username = '%Lu' AND active = 1
> >>
> >>
> >> Ist das normal bei der Verwendung von prefetch?
> >
> > Ich dachte bei prefetch braucht man kein user_query?
> 
> Doch, wenn ich im Buch auf Seite 88 (grauer Kasten) das so richtig  
> verstanden habe!

Prefetch userdb can be used to combine passdb and userdb lookups into a single lookup.

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = prefetch
}

Einen zusätzlichen Eintrag für userdb braucht man nur, wenn man LDA
benutzt.

Oder hast Du zwei Einträge für passdb, so wie ich?

passdb {
  args = /etc/dovecot/passwd
  driver = passwd-file
}

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

  Andreas


Mehr Informationen über die Mailingliste Dovecot