[Dovecot] problems with shared mailboxes and other general issues

Tom Lieuallen toml at engr.orst.edu
Thu Jun 10 03:16:30 EEST 2010


I'm also having beginner's troubles with shared mailboxes with dovecot 
1.2.11.

I've used the TestInstallation instructions for connecting to the imap 
port via openssl and issuing the setacl/getacl commands.  Those appear 
to be fine.

I'm having real difficulty with the acl_shared_dict configuration.  I'd 
prefer to just use a flat file, as I don't anticipate using shared 
folders very frequently.  I don't need a database and would greatly 
prefer not to have a dependency on our database service.  So, with this 
setting:

acl_shared_dict = file:/private/dovecot/var/etc/shared-mailboxes

The '../var/etc' directory is something like 755.  I have to create the 
file first and make it 666.  When it is updated, ownership & permissions 
are changed such that the user giving acl permissions then owns the file 
and it's 600.  I tried setting it back to 644 afterward, so other users 
could read it, but they tried setting a lock in that dir as well.

I tried this:

acl_shared_dict = 
file:/private/dovecot/var/etc/shared-list/shared-mailboxes-%u

Then I made shared-list have '1777' permissions.  Permissions-wise, this 
will now work, including locks, but I'm guessing this is just plain 
wrong and I still can't verify access.

My second choice was to use sqlite for this acl_shared_dict, but, even 
though I compiled dovecot with sqlite support and 'ldd' shows that 
'../libexec/dict' is linked against sqlite libraries, when I tried this 
config:

acl_shared_dict = sqlite:/private/dovecot/etc/acl-shared-dict.conf

I get this, and dovecot fails to start up.

EUnknown dict module: sqlite


I question whether I can use sqlite for acl_shared_dict.

Furthermore, in this vein, I don't really know what the shared namespace 
should even look like.  I've been trying the imap commands LIST and 
MYRIGHTS to verify access, but there are simply no examples.  I'd rather 
expect this to work:

x myrights shared/fromuser/folder

but all I get is mailbox doesn't exist.  I know 'shared' is the 
namespace, but I just don't know how it should really be referred to.

Personally, I can live without the acl_shared_dict (from what I 
understand).  I don't need to see the shared path for subscription, I'd 
just manually add the folder path to the .subscriptions file for the 
handful of users that need it.  I just don't think it's working, though.

On a related note, I thought I'd increase debugging to see if that 
helped out any.  When I change 'mail_debug' to 'yes', as soon as I issue 
the imap login command, it logs some stuff, then kicks me out.

Jun 09 15:57:53 IMAP(tom2): Info: acl: initializing backend with data: vfile
Jun 09 15:57:53 IMAP(tom2): Info: acl: acl username = tom2
Jun 09 15:57:53 IMAP(tom2): Info: acl: owner = 1
Jun 09 15:57:53 dovecot: Error: child 6000 (imap) killed with signal 11 
(core dumps disabled)

I would assume this error is causing my problems, but for all I know, it 
could be a side-effect of verbose debugging -- to just terminate.  I see 
nothing about that in the docs, though.  imap works fine without verbose 
logging, so I'm baffled.

I have been frustrated by the shared namespace documentation.  I've been 
through it again and again, but haven't found the answers I've been 
looking for.

Here is the relevant configuration:


namespace shared {
    location = mbox:%%h/mail/shared:INDEX=%%h/mail/shared/.imap
    # everything else defaults
}

protocol imap {
   mail_plugins = quota imap_quota acl imap_acl
}

protocol lda {
   mail_plugins = acl
}

plugin {
  acl = vfile
  acl_shared_dict = 
file:/private/dovecot/var/etc/shared-list/shared-mailboxes-%u
}


More information about the dovecot mailing list