Problem with acl and shared mailboxes

Fabian fabian at eideo.de
Mon Apr 3 12:56:26 EEST 2017


Hi there,

we are currently have the following problem:

User gustav at agreatdomain.de shares his INBOX to brunhilde at agreatdomain.com. But brunhilde can't
subscribe that mailbox.

host:~ # more //var/spool/mail/agreatdomain.com/gustav/Maildir/dovecot-acl
owner akxeilprwts
user=brunhilde at agreatdomain.com lprws
host:~ # 

Doveadm acl debug request:
host:~ # doveadm acl debug -u sieglinde at agreatdomain.com shared/gustav
doveadm(sieglinde at agreatdomain.com): Error: Mailbox 'shared.gustav' in namespace 'shared/gustav/'
doesn't exist in /var/spool/mail/agreatdomain.com/gustav//Maildir/.shared.gustav
host:~ #

In the debug logfile I can see the following message:
Apr 03 10:29:18 imap(brunhilde at agreatdomain.com): Debug: acl: acl username = brunhilde at agreatdomain.com
Apr 03 10:29:18 imap(brunhilde at agreatdomain.com): Debug: acl: owner = 0
Apr 03 10:29:18 imap(brunhilde at agreatdomain.com): Debug: acl vfile: Global ACLs disabled
Apr 03 10:29:18 imap(brunhilde at agreatdomain.com): Debug: acl vfile: file /var/spool/mail/agreatdomain.com/gustav/Maildir/.shared.gustav/dovecot-acl not found
Apr 03 10:29:18 imap(brunhilde at agreatdomain.com): Debug: acl: No lookup right to mailbox: shared/gustav

Why is dovecot searching in .shared/.gustav instead of Maildir/ directly?

Any ideas?


My configuration:
host:~ # doveconf -n
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.12.67-60.64.24-default x86_64 SUSE Linux Enterprise Server 12 (x86_64) ext3
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = /var/log/dovecot.debug
dict {
  sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_uid = 480
lmtp_save_to_detail_mailbox = yes
mail_debug = yes
mail_gid = vmail
mail_location = maildir:/var/spool/mail/%d/%u/Maildir:LAYOUT=fs
mail_plugins = acl quota listescape
mail_privileged_group = vmail
mail_uid = dovecot
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 {
  hidden = yes
  inbox = yes
  list = no
  location = 
  prefix = 
  separator = /
  subscriptions = yes
}
namespace {
  list = yes
  location = maildir:%%h/Maildir:INDEXPVT=~/Maildir/shared/%%u
  prefix = shared/%%n/
  separator = /
  subscriptions = no
  type = shared
}
namespace Public {
  list = children
  location = maildir:/var/mail/%d/public:INDEXPVT=~/public:LAYOUT=fs
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace inbox {
  inbox = no
  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 = INBOX/
  separator = /
  subscriptions = yes
  type = private
}
passdb {
  args = /etc/dovecot/masteruser.%s
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_anyone = allow
  acl_shared_dict = file:/var/spool/mail/%d/shared-mailboxes.db
  quota = dict:User quota::proxy::sqlquota
  quota2 = dict:Shared quota::proxy::sqlquota
  quota_rule2 = INBOX/Trash:storage=+100M
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
postmaster_address = postmaster at d8ox1.int.pro-ite.de
protocols = imap pop3 lmtp sieve
service auth-worker {
  user = dovecot
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0666
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = dovecot
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
ssl = no
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lmtp {
  mail_plugins = acl quota listescape acl quota sieve
}
protocol lda {
  mail_plugins = acl quota listescape acl sieve
}
protocol imap {
  mail_plugins = acl quota listescape imap_quota imap_acl
}
host:~ # 

-- 
Kind regards,
Fabian


More information about the dovecot mailing list