GSSAPI mail home mapping problem

Lucas Castro lucas at gnuabordo.com.br
Tue Aug 10 19:31:09 EEST 2021


Hello,

I'm trying to map authenticated kerberos users to mail_location,


The problem when I set mail_home = /var/mail/virtual/domain1.zw.loca/%n 
works fine.

But if mail_home is set as /var/mail/virtual/%d/%n

I get

Apr 12 19:53:18 postfix10 dovecot: imap-login: Login: user=<user0>, 
method=GSSAPI, rip=172.16.0.44, lip=10.16.0.220, mpid=2428, 
session=<iPA4Yc6/lJCsEAAs>
Apr 12 19:53:18 postfix10 dovecot: imap(user0 at domain1.zw.local 
=login_user=user0)<2428><iPA4Yc6/lJCsEAAs>: Debug: Added userdb setting: 
plugin/=yes
Apr 12 19:53:18 postfix10 dovecot: imap(user0 at domain1.zw.local 
=login_user=user0)<2428><iPA4Yc6/lJCsEAAs>: Debug: Effective uid=5000, 
gid=5000, home=/var/mail/virtual/domain1.zw.local =login_user=user0/user0

Right here, I can't figure out why login_user=user0/user0

Apr 12 19:53:18 postfix10 dovecot: imap(user0 at domain1.zw.local 
=login_user=user0)<2428><iPA4Yc6/lJCsEAAs>: Debug: Namespace inbox: 
type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, 
subscriptions=yes location=maildir:~/mail

Now login_user=user0

Apr 12 19:53:18 postfix10 dovecot: imap(user0 at domain1.zw.local 
=login_user=user0)<2428><iPA4Yc6/lJCsEAAs>: Debug: maildir++: 
root=/var/mail/virtual/domain1.zw.local =login_user=user0/user0/mail, 
index=, indexpvt=, control=, inbox=/var/mail/virtual/domain1.zw.local 
=login_user=user0/user0/mail, alt=

then login_user=user0/user0/mail

Apr 12 19:53:18 postfix10 dovecot: imap(user0 at domain1.zw.local 
=login_user=user0)<2428><iPA4Yc6/lJCsEAAs>: Debug: Mailbox INBOX: 
Mailbox opened because: SELECT


doveconf  -n
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 5.10.0-7-amd64 x86_64 Debian 10.6
# Hostname: postfix10.zw.local
auth_debug = yes
auth_gssapi_hostname = $ALL
auth_krb5_keytab = /etc/dovecot/imap.keytab
auth_mechanisms = gssapi
auth_verbose = yes
disable_plaintext_auth = no
import_environment = TZ KRB5CCNAME=/etc/dovecot/imap.ticket 
KRB5_KTNAME=/etc/dovecot/imap.keytab
mail_debug = yes
mail_gid = 5000
mail_home = /var/mail/virtual/%d/%n
mail_location = maildir:~/mail
mail_privileged_group = mail
mail_uid = 5000
namespace inbox {
   disabled = no
   inbox = yes
   list = yes
   location =
   mailbox Drafts {
     special_use = \Drafts
   }
   mailbox Junk {
     special_use = \Junk
   }
   mailbox Sent {
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Trash {
     special_use = \Trash
   }
   prefix =
   type = private
}
passdb {
   args = /etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
protocols = " imap lmtp pop3"
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0600
     user = postfix
   }
}
ssl = no
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
   args = /etc/dovecot/dovecot-ldap.conf.ext
   driver = ldap
}
userdb {
   driver = prefetch
}
protocol lmtp {
   postmaster_address = postmaster at zw.local
}


egrep -v "^$|^#" /etc/dovecot/dovecot-ldap.conf.ext
uris = ldap://ldap10.zw.local
auth_bind = yes
sasl_bind = yes
sasl_mech = gssapi
sasl_realm = zw.local
debug_level = -1
ldap_version = 3
base = dc=zw,dc=local
user_attrs = \
     =user=%{ldap:mail} \
     =login_user=%{ldap:uid}
user_filter = (uid=%n)
pass_attrs = \
     =user=%{ldap:uid},\
     =k5principals=%{ldap:krbPrincipalName}
pass_filter = (&(objectClass=krbPrincipalAux)(uid=%n))


-- 
Lucas Castro



More information about the dovecot mailing list