[Dovecot] Overriding inbox= in userdb extra fields

Bret Martin bam at miranda.org
Thu Aug 2 19:10:17 EEST 2012


Hello,

I'm trying to set up an alternate user with a different inbox using passwd-file and userdb extra fields and the extra field settings don't seem to be taking effect. I've used auth_debug and mail_debug and I'm unclear how I can further troubleshoot this.

Is it possible to have inbox=yes in one namespace globally and then override this for one user by setting inbox=no for that namespace and then inbox=yes for another?

My doveconf -n is below. I would like to have inbox=yes for the inbox namespace, inbox=no for the virtual namespace, and then be able to invert these for selected users using userdb extra fields. My attempt at doing this so far looks like

bam-ios:[REDACTED]:500:500::/home/bam::user=bam namespace/inbox/inbox=no namespace/virtual/inbox=yes

Changing the user with user= seems to work fine, but the inbox= changes don't. Here is some relevant log data.

Aug  2 11:37:29 new-miranda dovecot: auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: passwd-file /etc/dovecot/users: Read 1 users in 0 secs
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: auth client connected (pid=14967)
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: client in: AUTH#0111#011PLAIN#011service=imap#011secured#011session=Rgx2MErG4wBAd51y#011lip=216.93.241.245#011rip=64.119.157.114#011lport=993#011rport=38115#011resp=<hidden>
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: passwd-file(bam-ios,64.119.157.114,<Rgx2MErG4wBAd51y>): lookup: user=bam-ios file=/etc/dovecot/users
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: auth(bam-ios,64.119.157.114,<Rgx2MErG4wBAd51y>): username changed bam-ios -> bam
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: client out: OK#0111#011user=bam#011namespace/inbox/inbox=no#011namespace/virtual/inbox=yes
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: master in: REQUEST#[REDACTED]
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: passwd-file(bam,64.119.157.114,<Rgx2MErG4wBAd51y>): lookup: user=bam file=/etc/dovecot/users
Aug  2 11:37:29 new-miranda dovecot: auth: passwd-file(bam,64.119.157.114,<Rgx2MErG4wBAd51y>): unknown user
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: passwd(bam,64.119.157.114,<Rgx2MErG4wBAd51y>): lookup
Aug  2 11:37:29 new-miranda dovecot: auth: Debug: master out: USER#0111425670145#011bam#011system_groups_user=bam#011uid=500#011gid=500#011home=/home/bam
Aug  2 11:37:29 new-miranda dovecot: imap-login: Login: user=<bam>, method=PLAIN, rip=64.119.157.114, lip=216.93.241.245, mpid=14970, TLS, session=<Rgx2MErG4wBAd51y>
Aug  2 11:37:29 new-miranda dovecot: imap: Debug: Loading modules from directory: /usr/lib/dovecot/modules
Aug  2 11:37:29 new-miranda dovecot: imap: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_virtual_plugin.so
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: Effective uid=500, gid=500, home=/home/bam
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mdbox:/srv/mail/bam/mdbox
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: fs: root=/srv/mail/bam/mdbox, index=, control=, inbox=, alt=
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: Namespace : Using permissions from /srv/mail/bam/mdbox: mode=0700 gid=-1
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: Namespace virtual: type=private, prefix=virtual/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes location=virtual:/srv/mail/bam/virtual
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: fs: root=/srv/mail/bam/virtual, index=, control=, inbox=, alt=
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: Namespace mdbox: type=private, prefix=mdbox/, sep=/, inbox=no, hidden=yes, list=no, subscriptions=yes location=mdbox:/srv/mail/bam/mdbox
Aug  2 11:37:29 new-miranda dovecot: imap(bam): Debug: fs: root=/srv/mail/bam/mdbox, index=, control=, inbox=, alt=

I also tried not having inbox=yes anywhere in the global configurations, but then I get

Aug  2 11:52:22 new-miranda dovecot: imap(bam): Error: user bam: Initialization failed: namespace configuration error: inbox=yes namespace missing

I'm having great luck with the virtual plugin, but I only want to use it for the inbox on some clients. Any ideas on why my inbox=yes/no overrides aren't taking effect?

Thanks,

--Bret


# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5 ext4
mail_location = mdbox:/srv/mail/%u/mdbox
mail_plugins = " virtual"
namespace inbox {
  inbox = no
  location = 
  prefix = 
}
namespace mdbox {
  hidden = yes
  list = no
  location = 
  prefix = mdbox/
  separator = /
}
namespace virtual {
  hidden = yes
  inbox = yes
  list = no
  location = virtual:/srv/mail/%u/virtual
  prefix = virtual/
  separator = /
}
passdb {
  args = scheme=SSHA512 username_format=%u /etc/dovecot/users
  driver = passwd-file
}
passdb {
  driver = pam
}
protocols = " imap"
service imap-login {
  inet_listener imap {
    port = 0
  }
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
userdb {
  driver = passwd
}


More information about the dovecot mailing list