[Dovecot] Dovecot Postfix Quota Policy Service

Ulrich Zehl ulrich-dovecot at topfen.net
Tue May 7 13:12:00 EEST 2013


I was able to replicate your problem with 2.1.16 rev 0fa68f3a8f6c (from
Stephan's auto-built packages).

I have the following configuration in 10-master.conf, and no special
configuration for the service in 90-quota.conf.

| service quota-status {
|   executable = quota-status -p postfix
|   inet_listener {
|     port = 12340
|   }
|   client_limit = 1
|   user = root
| }

When I first query the quota-status service, I get the correct response:

| $ printf "recipient=test at example.org\nsize=1234\n\n" | nc 127.0.0.1 12340
| action=OK
|

But on every subsequent try, I always receive a response like this:

| $ printf "recipient=test at example.org\nsize=1234\n\n" | nc 127.0.0.1 12340
| action=DEFER_IF_PERMIT Internal error occurred. Refer to server log for more information.
|

Where the server log only says

| May  7 11:59:45 minna dovecot: quota-status(test at example.org): Error: user test at example.org: Error reading configuration: net_connect_unix(/var/run/dovecot/config) failed: Permission denied

Looking at the quota-status process, I notice it is not running as root,
but rather as $mail_uid. It seems the service drops / changes its
privileges at some point, which would explains the permission error on
subsequent requests.

Setting service_count=1 for the service is not a viable workaround, as
Postfix sends all policy requests for one SMTP session via one TCP
connection.


More information about the dovecot mailing list