[Dovecot] sharing of non-INBOX namespaces? Re: imapc and imap_acl
Lutz Preßler
Lutz.Pressler at SerNet.DE
Thu Sep 15 13:46:41 EEST 2011
Hi,
On Tue, 13 Sep 2011, Lutz Preßler wrote:
> On Di, 13 Sep 2011, Timo Sirainen wrote:
> > You mean you'd want local ACLs that apply to imapc mailboxes?
> Yes, exactly. Great for "integrating" legacy IMAP servers without e.g.
> ACL support.
> > I think that should work. For example if you set:
> >
> > mail_location = imapc:~/imapc
> Oh, had not realized that a path argument is possible for imapc:. There are
> even index file then...
> >
> > Then for mailbox foo/bar the ACL file should be in ~/imapc/.foo.bar/dovecot-acl
> It almost works:
> Sep 13 18:37:58 hhh dovecot: imap(4482, uuu): Error: file_dotlock_open(/home/uuu/Maildir/gmail/.[Gmail].Alle Nachrichten
> /dovecot-acl) failed: No such file or directory
> After manually creating the ".[Gmail].Alle Nachrichten" directory, SETACL
> succeeds.
Ok, I thought I tested accessing the mailbox afterwards, too - but I probably
had not.
I have a more general problem now: shared mailboxes from any "non-INBOX"
namespace are not available to other users. That's not only with virtual or
imapc namespaces, but also tested with two Maildir ones:
namespace personal {
inbox = yes
location = maildir:~/Maildir
prefix = INBOX.
type = private
}
namespace second {
inbox = no
location = maildir:~/Maildir2
prefix = INBOX.second.
type = private
}
namespace others {
type = shared
separator = .
prefix = INBOX.shared.%%u.
location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
#location = maildir:/home/%%n/Maildir:INDEX=~/Maildir/shared/%%u
subscriptions = no
list = children
}
[...]
I can as user1 SETACL INBOX.second.box
~user1/Maildir2/dovecot-acl-list contains "1316082286 box"
~user1/Maildir2/.box/dovecot-acl contains "user=testuser lrs"
(as does ~user1/Maildir/.in2007/dovecot-acl)
The shared mailboxes dict contains
shared/shared-boxes/user/testuser/user1
1
But - as testuser -
0 list "" "*"
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.test"
* LIST (\HasNoChildren) "." "INBOX.second"
* LIST (\Noselect \HasChildren) "." "INBOX.shared.user1"
* LIST (\HasNoChildren) "." "INBOX.virtual"
* LIST (\HasNoChildren) "." "INBOX.shared.user1.in2007"
0 OK List completed.
INBOX.shared.user1.second.box is missing. Also
0 select INBOX.shared.user1.second.box
* OK [CLOSED] Previous mailbox closed.
0 NO Mailbox doesn't exist: second.box
Log shows then:
Sep 15 12:39:48 host dovecot: imap(8796, testuser): Debug: acl vfile: file /etc/dovecot/global-acls/INBOX.shared.user1.second.box not found
Sep 15 12:39:48 host dovecot: imap(8796, testuser): Debug: acl vfile: file /home/user1/Maildir/.second.box/dovecot-acl not found
... not searching for the acl file correctly.
Thought I tested this with earlier (2.0) versions. Changed group set up
inbetween, but this does not seem relevant.
Regards,
Lutz
More information about the dovecot
mailing list