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
Hello Fabian ! There's a simpler method for implementing shared folders if you'd like to try it. It only relies on symlinks and acl files. I describe this 5 steps method in this wiki article : https://ychaouche.informatick.net/dovecotsharefolders#test_your_setup_with_the_doveadm_acl_tool -- Yassine
Hi Yassine, 3. April 2017 14:09, "chaouche yacine" <yacinechaouche at yahoo.com> schrieb:> Hello Fabian ! > > There's a simpler method for implementing shared folders if you'd like to try it. It only relies on > symlinks and acl files. I describe this 5 steps method in this wiki article : > >Thanks for this hint, but this isn't a solution for our mailserver setup. We need to enable the user to create the acl directly over the imap protocol and not on the filesystem. -- With kind regards Fabian