Moin,
wir beobachten auf zwei Systemen unterschiedliches Verhalten:
Auf unserem Testsystem mit UCS 4.2 (und wenigen Testusern) schlägt sich ein Ändern der Quota in der LDAP sofort im Dovecot nieder.
Ein doveadm quota get -u testuser@domain.de zeigt die Quota sofort an.
Auf dem System des Kunden (UCS 4.2.5-517) mit über 600 Usern zeigt das doveadm quota get … noch den alten Wert an. Ein doveadm reload sorgt für eine Aktualisierung.
Wir haben das soweit analysiert, das der Dovecot die Quota Information direkt aus der LDAP abfragt
(Datei: /etc/dovecot/dovecot-ldap.conf.ext).
Wir haben folgenden Fall im Live-System nachgespielt:
Die Quota ist überschritten, Mails werden abgelehnt
Wir erhöhen die Quota in der LDAP
doveadm zeigt keine Änderung
Eine weitere Mail wird abgelehnt
doveadm zeigt immer noch keine Änderung
Der User meldet sich neu am IMAP Server an
doveadm zeigt Änderung
Wir würden uns wünschen, dass sich Quota-Änderung vor der Zustellung neuer E-Mails auswirken. Lässt sich das anpassen?
Antwort auf Englisch um auch von englischsprachigen Usern verstanden zu werden.
The quota for a user is cached together with other authentication data. The time to live (TTL) for cached data can be set with the UCR variable mail/dovecot/auth/cache_ttl.
After TTL expires the cached record is no longer used, except if the main database (LDAP) lookup returns an internal failure. Default is “5 mins”.
So in case you change the quota settings and a user had already connected (and thus its data was stored in the cache), then the quota change will only become active after 5 minutes, or after you empty the cache using doveadm auth cache flush.
To lower the lifetime of cache entries to one minute for example, run:
ucr set mail/dovecot/auth/cache_ttl=1
service dovecot reload
This will slightly lower the performance of the IMAP server, as it will have to do more LDAP queries for user data and PAM requests for authentication - depends mostly on the load on the LDAP server. Try and see how much it affects your system.