Hi,
I'm doing a migration from dovecot 2.3 to 2.4. I can't find why the user
quota is not respected.
In my case in version 2.3 the user quota where read from LDAP:
user_attrs =
mailBase=home,mailMessageStore=mail,dovecotQuota=quota_rule=*:storage=%$
I can't find how I can configure this in 2.4. The documentation refers
to "quota_rule" but how and where?
In 2.4 I have:
userdb ldap {
userdb_use_worker = yes
userdb_ldap_filter =
(&(objectClass=PromptMailUser)(accountStatus=TRUE)(mailDeliveryaddress=%{user}))
fields {
home = %{ldap:mailBase}
mail = %{ldap:mailMessageStore}
mail_path = %{ldap:mailMessageStore}
quota_storage_size = %{ldap:dovecotQuota}
}
}
quota "User quota" {
storage_size = 5G
warning warn-95 {
quota_storage_percentage = 95
execute quota-warning {
args = 95 %{user}
}
}
warning warn-80 {
quota_storage_percentage = 80
execute quota-warning {
args = 80 %{user}
}
}
}
The global quota works (set on 5Gb). The command
doveadm -D quota get -u <user>
shows:
Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
Debug: Skipping module doveadm_acl_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined
symbol: acl_user_module (this is usually intentional, so just ignore
this message)
Debug: Skipping module doveadm_quota_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so:
undefined symbol: quota_user_module (this is usually intentional, so
just ignore this message)
Debug: Module loaded:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_backend_rescan (this is usually intentional, so just ignore
this message)
Debug: Skipping module doveadm_fts_flatcurve_plugin, because dlopen()
failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_fts_flatcurve_plugin.so:
undefined symbol: fts_flatcurve_user_module (this is usually
intentional, so just ignore this message)
Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen()
failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so:
undefined symbol: crypt_acl_setting_parser_info (this is usually
intentional, so just ignore this message)
Jan 21 13:53:34 Debug: Loading modules from directory:
/usr/lib/dovecot/modules
Jan 21 13:53:34 Debug: Module loaded:
/usr/lib/dovecot/modules/lib10_quota_plugin.so
Jan 21 13:53:34 Debug: Loading modules from directory:
/usr/lib/dovecot/modules/doveadm
Jan 21 13:53:34 Debug: Skipping module doveadm_acl_plugin, because
dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined
symbol: acl_user_module (this is usually intentional, so just ignore
this message)
Jan 21 13:53:34 Debug: Module loaded:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so
Jan 21 13:53:34 Debug: Skipping module doveadm_fts_plugin, because
dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_backend_rescan (this is usually intentional, so just ignore
this message)
Jan 21 13:53:34 Debug: Skipping module doveadm_fts_flatcurve_plugin,
because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_fts_flatcurve_plugin.so:
undefined symbol: fts_flatcurve_user_module (this is usually
intentional, so just ignore this message)
Jan 21 13:53:34 Debug: Skipping module doveadm_mail_crypt_plugin,
because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so:
undefined symbol: crypt_acl_setting_parser_info (this is usually
intentional, so just ignore this message)
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup(user(a)domain.xx): Started userdb lookup
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb: Connecting
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb (pid=229336,uid=0): Client connected
(fd=9)
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb (pid=229336,uid=0): auth input:
user(a)domain.xx home=/vmail/intern/user
mail=/vmail/intern/user/Maildir/
mail_path=/vmail/intern/user/Maildir/ quota_storage_size=10G
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup(user(a)domain.xx): auth USER input: user(a)domain.xx
home=/vmail/intern/user mail=/vmail/intern/user/Maildir/
mail_path=/vmail/intern/user/Maildir/ quota_storage_size=10G
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup(user(a)domain.xx): Finished userdb lookup
(username=user(a)domain.xx home=/vmail/intern/user
mail=/vmail/intern/user/Maildir/ mail_path=/vmail/intern/user/Maildir/
quota_storage_size=10G)
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: Added userdb
setting: mail=/vmail/intern/user/Maildir/
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: Added userdb
setting: mail_path=/vmail/intern/user/Maildir/
Jan 21 13:53:34 doveadm(user(a)domain.xx)<229340><>: Debug: Added userdb
setting: quota_storage_size=10G
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: Effective uid=118,
gid=125, home=/vmail/intern/user
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: open(/proc/self/io)
failed: Permission denied (euid=118(vmail) egid=125(vmail) missing +r
perm: /proc/self/io)
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: Namespace inbox:
type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes,
subscriptions=yes
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: maildir++:
root=/vmail/intern/user/Maildir, index=, indexpvt=, control=,
inbox=/vmail/intern/user/Maildir, alt=
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: quota-count:
quota_over_status check: quota_over_mask unset - skipping
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: Mailbox INBOX: Mailbox
opened
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: User session is finished
Jan 21 13:53:34 doveadm(user(a)domain.xx): Debug: auth-master: conn
unix:/run/dovecot//auth-userdb (pid=229336,uid=0): Disconnected:
Connection closed (fd=9)
Quota name Type Value Limit %
User quota STORAGE 9116042 5242880 173
User quota MESSAGE 60188 - 0
--
Cordialement,
*R.J. Baart
*
Hi,
I'm doing a migration from dovecot 2.3 to 2.4. I can't find why the user
quota is not respected.
In my case in version 2.3 the user quota where read from LDAP:
user_attrs =
mailBase=home,mailMessageStore=mail,dovecotQuota=quota_rule=*:storage=%$
I can't find how I can configure this in 2.4. The documentation refers to
"quota_rule" but how and where?
In 2.4 I have:
userdb ldap {
userdb_use_worker = yes
userdb_ldap_filter =
(&(objectClass=PromptMailUser)(accountStatus=TRUE)(mailDeliveryaddress=%{user}))
fields {
home = %{[1]ldap:mailBase}
mail = %{[2]ldap:mailMessageStore}
mail_path = %{[3]ldap:mailMessageStore}
quota_storage_size = %{[4]ldap:dovecotQuota}
}
}
quota "User quota" {
storage_size = 5G
warning warn-95 {
quota_storage_percentage = 95
execute quota-warning {
args = 95 %{user}
}
}
warning warn-80 {
quota_storage_percentage = 80
execute quota-warning {
args = 80 %{user}
}
}
}
The global quota works (set on 5Gb). The command
doveadm -D quota get -u <user>
shows:
Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
Debug: Skipping module doveadm_acl_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined
symbol: acl_user_module (this is usually intentional, so just ignore this
message)
Debug: Skipping module doveadm_quota_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined
symbol: quota_user_module (this is usually intentional, so just ignore
this message)
Debug: Module loaded:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_backend_rescan (this is usually intentional, so just ignore
this message)
Debug: Skipping module doveadm_fts_flatcurve_plugin, because dlopen()
failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_fts_flatcurve_plugin.so:
undefined symbol: fts_flatcurve_user_module (this is usually intentional,
so just ignore this message)
Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so:
undefined symbol: crypt_acl_setting_parser_info (this is usually
intentional, so just ignore this message)
Jan 21 13:53:34 Debug: Loading modules from directory:
/usr/lib/dovecot/modules
Jan 21 13:53:34 Debug: Module loaded:
/usr/lib/dovecot/modules/lib10_quota_plugin.so
Jan 21 13:53:34 Debug: Loading modules from directory:
/usr/lib/dovecot/modules/doveadm
Jan 21 13:53:34 Debug: Skipping module doveadm_acl_plugin, because
dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined
symbol: acl_user_module (this is usually intentional, so just ignore this
message)
Jan 21 13:53:34 Debug: Module loaded:
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so
Jan 21 13:53:34 Debug: Skipping module doveadm_fts_plugin, because
dlopen() failed:
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_backend_rescan (this is usually intentional, so just ignore
this message)
Jan 21 13:53:34 Debug: Skipping module doveadm_fts_flatcurve_plugin,
because dlopen() failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_fts_flatcurve_plugin.so:
undefined symbol: fts_flatcurve_user_module (this is usually intentional,
so just ignore this message)
Jan 21 13:53:34 Debug: Skipping module doveadm_mail_crypt_plugin, because
dlopen() failed:
/usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so:
undefined symbol: crypt_acl_setting_parser_info (this is usually
intentional, so just ignore this message)
Jan 21 13:53:34 doveadm([5]user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup([6]user(a)domain.xx): Started userdb lookup
Jan 21 13:53:34 doveadm([7]user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb: Connecting
Jan 21 13:53:34 doveadm([8]user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb (pid=229336,uid=0): Client connected
(fd=9)
Jan 21 13:53:34 doveadm([9]user(a)domain.xx)<229340><>: Debug: auth-master:
conn unix:/run/dovecot//auth-userdb (pid=229336,uid=0): auth input:
[10]user(a)domain.xx home=/vmail/intern/user
mail=/vmail/intern/user/Maildir/
mail_path=/vmail/intern/user/Maildir/ quota_storage_size=10G
Jan 21 13:53:34 doveadm([11]user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup([12]user(a)domain.xx): auth USER input: [13]user(a)domain.xx
home=/vmail/intern/user mail=/vmail/intern/user/Maildir/
mail_path=/vmail/intern/user/Maildir/ quota_storage_size=10G
Jan 21 13:53:34 doveadm([14]user(a)domain.xx)<229340><>: Debug: auth-master:
userdb lookup([15]user(a)domain.xx): Finished userdb lookup
([16]username=user(a)domain.xx home=/vmail/intern/user
mail=/vmail/intern/user/Maildir/ mail_path=/vmail/intern/user/Maildir/
quota_storage_size=10G)
Jan 21 13:53:34 doveadm([17]user(a)domain.xx)<229340><>: Debug: Added userdb
setting: mail=/vmail/intern/user/Maildir/
Jan 21 13:53:34 doveadm([18]user(a)domain.xx)<229340><>: Debug: Added userdb
setting: mail_path=/vmail/intern/user/Maildir/
Jan 21 13:53:34 doveadm([19]user(a)domain.xx)<229340><>: Debug: Added userdb
setting: quota_storage_size=10G
Jan 21 13:53:34 doveadm([20]user(a)domain.xx): Debug: Effective uid=118,
gid=125, home=/vmail/intern/user
Jan 21 13:53:34 doveadm([21]user(a)domain.xx): Debug: open(/proc/self/io)
failed: Permission denied (euid=118(vmail) egid=125(vmail) missing +r
perm: /proc/self/io)
Jan 21 13:53:34 doveadm([22]user(a)domain.xx): Debug: Namespace inbox:
type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes,
subscriptions=yes
Jan 21 13:53:34 doveadm([23]user(a)domain.xx): Debug: maildir++:
root=/vmail/intern/user/Maildir, index=, indexpvt=, control=,
inbox=/vmail/intern/user/Maildir, alt=
Jan 21 13:53:34 doveadm([24]user(a)domain.xx): Debug: quota-count:
quota_over_status check: quota_over_mask unset - skipping
Jan 21 13:53:34 doveadm([25]user(a)domain.xx): Debug: Mailbox INBOX: Mailbox
opened
Jan 21 13:53:34 doveadm([26]user(a)domain.xx): Debug: User session is
finished
Jan 21 13:53:34 doveadm([27]user(a)domain.xx): Debug: auth-master: conn
unix:/run/dovecot//auth-userdb (pid=229336,uid=0): Disconnected:
Connection closed (fd=9)
Quota name Type Value Limit %
User quota STORAGE 9116042 5242880 173
User quota MESSAGE 60188 - 0
--
Cordialement,
R.J. Baart
References
Visible links
1. file:///tmp/tmp_2m1p1xn/ldap:mailBase
2. file:///tmp/tmp_2m1p1xn/ldap:mailMessageStore
3. file:///tmp/tmp_2m1p1xn/ldap:mailMessageStore
4. file:///tmp/tmp_2m1p1xn/ldap:dovecotQuota
5. mailto:user@domain.xx
6. mailto:user@domain.xx
7. mailto:user@domain.xx
8. mailto:user@domain.xx
9. mailto:user@domain.xx
10. mailto:user@domain.xx
11. mailto:user@domain.xx
12. mailto:user@domain.xx
13. mailto:user@domain.xx
14. mailto:user@domain.xx
15. mailto:user@domain.xx
16. mailto:username=user@domain.xx
17. mailto:user@domain.xx
18. mailto:user@domain.xx
19. mailto:user@domain.xx
20. mailto:user@domain.xx
21. mailto:user@domain.xx
22. mailto:user@domain.xx
23. mailto:user@domain.xx
24. mailto:user@domain.xx
25. mailto:user@domain.xx
26. mailto:user@domain.xx
27. mailto:user@domain.xx