Does domain quota work and how?
Aki Tuomi
aki.tuomi at dovecot.fi
Thu Aug 16 21:03:44 EEST 2018
> On 16 August 2018 at 20:51 Kai Schaetzl <maillists at conactive.com> wrote:
>
>
> Hello,
>
> I'm in the process of moving users from an old dovecot setup with system
> users to a modern virtual user setup.
>
> I can't find good documentation on domain quota.
> It is mentioned in the docs as
> quota2 = dict:domain:%d:proxy::quota_domain
> but not much more.
> Searching the mailing list or Google doesn't reveal much more info.
> Searching the German mailing list at jpberlin finds mostly information
> where they say that it doesn't work.
> So, does it or does it not?
>
> And if it works, does it work like I'm used to?
> e.g. with system users and aquota the filesystem quota kicks in whenever
> either the user or the domain quota is reached. That makes sense. It
> prohibits that single users can "fill" the whole domain (group) quota.
>
> I found one particular example where they say the dict quota works
> different, e.g. it's an either/or. They give this example for the
> user_query (the relevant part):
>
> CONCAT('*:bytes=', \
> IF(mailbox.quota = 0, domain.maxquota*1024000, mailbox.quota)) \
> as quota_rule
>
> So, this works as a default domain quota that is overridden on a user by
> user basis. But this means that a user quota that is set cannot honor the
> domain quota. So, in theory all users together can reach a maximum quota
> that is way over the domain quota. Not desirable.
>
> Concluding from the example in 90-quota.conf I want to set up this
> user_query (relevant part):
>
> concat('*:bytes=', m.quota) AS quota_rule, concat('*:bytes=',
> (s.quota*1024*1024)) AS quota2_rule
>
> (with m and s being the two tables for user and domain quota and s holding
> the domain quota in MB)
>
> Does this work together with this quota plugin setup and would provide
> both a user and domain quota?
>
> quota = dict:user::proxy::quota
> quota2 = dict:domain:%d:proxy::quota_domain
> quota_rule = *:storage=100M # default
> quota2_rule = *:storage=1000M # default
>
> I would like to know if this is supposed to work (and how) before I start
> testing in vain.
>
> One thing that I can confirm from several statements on the mailing lists
> is that the recalc option of doveadm doesn't work correctly. A
> doveadm quota recalc -A
> sets the used domain quota to the user used quota that it handles last for
> the domain (and a recalc -u sets the whole domain used quota to the one of
> that user). Which sets the domain quota completely wrong. I tried
> iterating thru the various users but got the same result as with -A. So,
> this is clearly broken, at least from my point of view.
>
> I'm using dovecot 2.3 from this repo:
> deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/xenial xenial main
>
> I installed it because of the native blowfish encryption support. So far,
> it seems to be running great. Except for this particular aspect.
>
> Thanks!
>
> Kai
>
>
Can you provide doveconf -n please?
Aki
More information about the dovecot
mailing list