[Dovecot] doveadm index - Bug or expected behaviour?
Bruno Galindro da Costa
bruno.galindro at gmail.com
Thu Jun 5 18:30:26 UTC 2014
My ldap config is using the variable %d in base search for domain
replacement when dovecot will search for users in LDAP. Its works fine for
dovecot operation.
But, for doveadm index, not. It ignores that variable and tries to pass a
base search without domain. So, the search will not working.
This is the command:
# doveadm -v index -A INBOX
This is my config:
# cat /etc/dovecot/dovecot-ldap-userdb.conf
hosts = 10.0.0.1
tls = no
auth_bind = no
ldap_version = 3
base = ou=%d,ou=mail,ou=services,dc=domain
scope = subtree
deref = never
user_filter = (& (cn=%n)(objectclass=nisMailAlias)(ContaAtiva=TRUE) )
user_attrs =
cn=rfc822mailmember,EmailQuota=quota_rule=*:storage=%$M,EmailQuotaSpecial=quota_rule=*:storage=%$M,eduPersonPrincipalName=eppn
iterate_filter =
(&(objectclass=nisMailAlias)(ContaAtiva=TRUE)(!(EmailQuota=0)))
iterate_attrs = rfc822mailmember=user
This is the error reported by doveadm index:
doveadm(root): Error: User listing returned failure
doveadm: Error: Failed to iterate through some users
If you put a tcpdump to monitor the search, you i'll see 3 packets. The
first is the LDAP searchRequest message, with this content:
LDAPMessage searchRequest(3) "*ou=,*ou=mail,ou=services,dc=domain"
wholeSubtree
If I change the base parameter of config file to this, it works perfectly:
base = ou=net.domain,ou=mail,ou=services,dc=domain
tcpdump:
LDAPMessage searchRequest(3)
"*ou=**net.domain**,*ou=mail,ou=services,dc=domain"
wholeSubtree
# dovecot -n
# 2.2.13 (5c877bca95e5): /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-63-virtual x86_64 Ubuntu 12.04.4 LTS zfs
auth_cache_negative_ttl = 1 mins
auth_cache_size = 1 k
auth_cache_ttl = 10 mins
auth_username_chars =
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@~
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_gid = mail
mail_home = /var/mail/mailboxes/%d/%n/home
mail_location =
maildir:/var/mail/mailboxes/%d/%n:INDEX=/var/mail.indexes/%d/%n
mail_privileged_group = mail
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags
copy include variables body enotify environment mailbox date ihave
namespace inbox {
inbox = yes
location =
prefix =
type = private
}
namespace spam {
list = yes
location = maildir:/var/mail.spam/%d/%n
mailbox Filtrados {
auto = subscribe
}
prefix = SPAM.
subscriptions = yes
type = private
}
passdb {
args = /etc/dovecot/passdb.v3.1.sh
driver = checkpassword
}
plugin {
mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename flag_change save mailbox_create
mail_log_fields = uid box msgid from subject size vsize
quota = maildir:DefaultQuota
quota_exceeded_message = O destinatario desta mensagem esta com a caixa
postal cheia. A sua mensagem so pode ser entregue se o destinatario apagar
algumas das mensagens.
quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95 %u
quota_warning2 = storage=90%% /usr/local/bin/quota-warning.sh 90 %u
sieve = /var/mail/sieve_scripts/%d/%n/.dovecot.sieve
sieve_after = /etc/dovecot/sieve/default.sieve
sieve_dir = /var/mail/sieve_scripts/%d/%n/sieve
sieve_global_dir = /etc/dovecot/sieve
sieve_global_path = /etc/dovecot/sieve/default.sieve
trash = /etc/dovecot/dovecot-trash.conf
}
protocols = imap sieve pop3
service anvil {
client_limit = 1603
}
service auth {
client_limit = 1600
unix_listener auth-client {
mode = 0660
}
unix_listener auth-master {
group = mail
mode = 0600
user = vmail
}
user = root
vsz_limit = 256 M
}
service imap-login {
client_limit = 1500
inet_listener imap {
address = *,[::]
port = 143
}
inet_listener imaps {
address = *,[::]
port = 993
}
process_limit = 500
service_count = 0
user = dovecot
vsz_limit = 256 M
}
service imap {
process_limit = 2048
vsz_limit = 450 M
}
service managesieve-login {
client_limit = 1500
executable = /usr/lib/dovecot/managesieve-login
process_limit = 500
service_count = 0
user = dovecot
vsz_limit = 256 M
}
service managesieve {
executable = /usr/lib/dovecot/managesieve
process_limit = 2048
vsz_limit = 450 M
}
service pop3-login {
client_limit = 1500
inet_listener pop3s {
address = *,[::]
port = 2221
}
process_limit = 500
service_count = 0
user = dovecot
vsz_limit = 256 M
}
service pop3 {
process_limit = 2048
vsz_limit = 450 M
}
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-ldap-userdb.conf
driver = ldap
}
protocol imap {
mail_fsync = never
mail_max_userip_connections = 2048
mail_plugins = quota imap_quota trash zlib mail_log notify
ssl_ca = </etc/dovecot/ca.crt
ssl_cert = </etc/dovecot/domain.crt
ssl_key = </etc/dovecot/domain.key
}
protocol pop3 {
mail_fsync = never
mail_plugins = quota
pop3_uidl_format = %08Xu%08Xv
ssl_ca = </etc/dovecot/ca.crt
ssl_cert = </etc/dovecot/domain.crt
ssl_key = </etc/dovecot/domain.key
}
protocol sieve {
managesieve_implementation_string = Cyrus timsieved v2.2.13
managesieve_logout_format = bytes=%i/%o
ssl_ca = </etc/dovecot/ca.crt
ssl_cert = </etc/dovecot/domain.crt
ssl_key = </etc/dovecot/domain.key
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
mail_fsync = optimized
mail_plugins = quota sieve expire
postmaster_address = admin at domain
}
--
Att.
Bruno Galindro da Costa
More information about the dovecot
mailing list