Hi Timo,

On 12-Feb-12 5:16, Timo Sirainen wrote:
On 10.2.2012, at 14.13, Michael Stilkerich wrote:

I have shared one of my mailboxes to another user providing him full rights to
that mailbox.

$ doveadm acl get -u user1 doc

Is "doc" the namespace prefix?

No, 'doc' is the name of the shared parent mailbox under that the 2nd
user created the new mailbox 'hallo'.

To clarify: user1 shares the mailbox 'doc' with max permissions to user2. user2 then creates a new mailbox under the parent 'doc'.

When that user creates a new mailbox within the shared mailbox, the mailbox is 
successfully
created but with an empty ACL.

Creates how? With IMAP client?

Yes, using Thunderbird / Roundcube Webmail.

According to the wiki, it should inherit the ACL from its parent, i.e. have
full permissions for user2.

Works with me. dovecof -n output?

The config is attached.

The IMAP-Client is signaled an error by dovecot, but the log file does not contain an error. At the filesystem level

- The mailbox was created as a sub folder of 'doc'.
- It contains nothing but an empty sub folder 'dbox-Mails'.
- It does specifically not contain an dovecot-acl file.
- The sharing user's (user1) dovecot-acl-list file was not updated to
  list the newly created subfolder.
- The acl dictionary 'shared-mailboxes' was also not touched, but this
  is probably correct since it already contains a record that user1
  shares mailboxes to user2.
- When user1 accesses the new mailbox that user2 created, the below
  error gets logged and a dovecot.index.log file is created in the
  until then empty 'dbox-Mails' folder of the new mailbox.

Dovecot logs the following errors when I access the parent folder the first time
after the other user created the child mailbox:

dovecot: imap(user1): Error: Mailbox doc/hallo: Corrupted index, uidvalidity=0
dovecot: imap(user1): Error: Recent flags state corrupted for mailbox INBOX
dovecot: imap(user1): Error: 
/home/dovecot/user1/mailboxes/INBOX/dbox-Mails/dovecot.index reset, view is now 
inconsistent

Are you trying to use per-user indexes? That's not going to work.

I don't think so. I'm using dbox and thus have not added a custom :INDEX=... to the location.

-Michael
# 2.1.rc5: /opt/dovecot-2.1rc5/etc/dovecot/dovecot.conf
# OS: Linux 3.0.0-15-server x86_64 Ubuntu 11.10 
auth_mechanisms = scram-sha-1 digest-md5 cram-md5 login plain
auth_username_format = %Ln
auth_verbose = yes
first_valid_uid = 1000
last_valid_uid = 29999
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_access_groups = mail
mail_fsync = never
mail_plugins = acl zlib
mail_privileged_group = mail
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 {
  list = children
  location = mdbox:/home/dovecot/%%Ln
  prefix = shared/%%n/
  separator = /
  subscriptions = no
  type = shared
}
namespace inbox {
  inbox = yes
  location = mdbox:/home/dovecot/%Ln
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  mailbox spam {
    special_use = \Junk
  }
  prefix = 
  separator = /
  type = private
}
passdb {
  args = scheme=plain /etc/dovecot/passwd-db
  driver = passwd-file
}
plugin {
  acl = vfile
  acl_shared_dict = file:/home/dovecot/shared-mailboxes
  fts = squat
  sieve = ~/.dovecot.sieve
  sieve_after = /var/lib/dovecot/sieve/after.sieve
  sieve_default = /var/lib/dovecot/sieve/default.sieve
  sieve_dir = ~/.sieve
  zlib_save = gz
  zlib_save_level = 6
}
protocols = imap sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = sasl
    mode = 0660
    user = postfix
  }
}
service imap-login {
  inet_listener imap {
    address = ::1, 127.0.0.1
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service managesieve-login {
  inet_listener sieve {
    address = ::1, 127.0.0.1
    port = 4190
  }
}
ssl_cert = </etc/ssl/startssl/startssl_class2_chain.crt
ssl_key = </etc/ssl/private/startssl_class2.key
userdb {
  args = blocking=no
  driver = passwd
}
protocol lmtp {
  mail_fsync = optimized
}
protocol lda {
  mail_fsync = optimized
  mail_plugins = acl zlib sieve
}
protocol imap {
  mail_plugins = acl zlib imap_acl fts fts_squat
}

Reply via email to