Hmm inheritance for Inbox subfolders is working now that i changed
namespace inbox into namespace.
However the prefix INDEX thing does not look nice for shared folders
they appear as shaler/username/INBOX/[foldername]
The docs mention:
ACL Inheritance
Every time you create a new mailbox, it gets its ACLs from the parent
mailbox. If you're creating a root-level mailbox, it uses the
namespace's default ACLs. There is no actual inheritance, however: If
you modify parent's ACLs, the child's ACLs stay the same. There is
currently no support for ACL inheritance.
Namespace's default ACLs are read from "dovecot-acl" file in the
namespace's mail root directory (e.g. /var/public/Maildir). Note that
currently these default ACLs are used only when creating new mailboxes,
they aren't used for mailboxes without ACLs.
What i do not understand where would i have to put an dovecot-acl for
user default? My mail_home is /home/vmail/%u and mail root an subfolder
mail inside. The dovecot-acl residing here is the one with the acl's for
inbox and therefore only used for inboxe's subfolders.
Am 08.11.2013 01:25, schrieb Achim Gottinger:
Hi,
I run dovecot (2.1.7) on debian wheezy in conjuniction with postfix,
samba4 (as ldap backend) and sogo. I configured folder sharing but
have an few issues.
With my current config users can share the inbox and other folders. If
the acl allows creatings subfolders this does work for all folders
beside inbox.
What i want to archiev is the following:
If an user shares his inbox, others should be able to create
subfolders and those should inherit the inboxe's acl. All subfolders
of inbox should appear as folders at root level and not as subfolders
of the inbox.
I thought this can be done by setting the prefix of namespace inbox to
INBOX/. I did this and changed the IMAP Server Folder setting in
thunderbird to INBOX (like it was earlier when i used courier). Now
subfolders created at rootlevel or as subfolders of the inbox appear
on rootlevel in thunderbird but they do not inherit the acl's from
inbox. Is there an way to achive this?
doveconf -n
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.2 ext4
auth_debug = yes
auth_gssapi_hostname = $ALL
auth_krb5_keytab = /etc/dovecot/dovecot.keytab
auth_master_user_separator = %
auth_mechanisms = plain login gssapi
auth_username_chars =
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@%
auth_username_format = %n
auth_verbose = yes
debug_log_path = syslog
disable_plaintext_auth = no
first_valid_gid = 998
first_valid_uid = 998
info_log_path = syslog
mail_debug = yes
mail_gid = 998
mail_home = /home/vmail/%u
mail_location = maildir:/home/vmail/%u/mail
mail_plugins = acl
mail_shared_explicit_inbox = no
mail_uid = 998
maildir_very_dirty_syncs = yes
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 =
maildir:/home/vmail/%%u/mail:INDEX=/home/vmail/%u/mail/shared/%%u
prefix = shared/%%u/
separator = /
subscriptions = no
type = shared
}
namespace inbox {
inbox = yes
location = maildir:/home/vmail/%u/mail
prefix =
separator = /
type = private
}
passdb {
args = /etc/dovecot/dovecot-ldap-passdb.conf.ext
driver = ldap
}
passdb {
args = /etc/dovecot/passwd.masterusers
driver = passwd-file
master = yes
}
plugin {
acl = vfile
acl_anyone = allow
acl_shared_dict = file:/home/vmail/.shared-mailboxes
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
protocols = " imap lmtp sieve"
service auth-worker {
user = $default_internal_user
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0777
user = vmail
}
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service imap-postlogin {
executable = script-login /etc/dovecot/acl-groups.sh
user = $default_internal_user
}
service imap {
executable = imap imap-postlogin
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0666
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
ssl_cert = </etc/easy-rsa/keys/dovecot.crt
ssl_key = </etc/easy-rsa/keys/dovecot.key
userdb {
args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
driver = ldap
}
userdb {
args = /etc/dovecot/dovecot-ldap-userdb-groups.conf.ext
driver = ldap
}
protocol imap {
imap_client_workarounds = delay-newmail
mail_plugins = acl imap_acl
}
protocol lmtp {
mail_plugins = acl sieve
}