update dovecot-acl in all subfolders in a public folder
Lukas Henrich
l.henrich at spirit-server.com
Fri Oct 14 07:40:29 UTC 2016
Hello everyone,
right now I have problem and can't find a proper solution.
But first: dovecot-version: 2.2.13
Now to my problem:
A client of mine uses a public folder called "groups". In this Folder
are several subfolders like "Archive", "projects", "sales" und so on.
Unfortunately this client (and his employees) created thousands of
subfolders within these folders. The folder "groups" is stored in
/data/vmail/domain.com/.
So, if i type "tree -a -L 1 /data/vmail/domain.com/groups" I get the
following outpout:
/data/vmail/domain.com/groups/
??? .Archive
??? .Archive.subfolder1
??? .Archive.subfolder2
??? .Archive.subfolder2.subfolder3
??? .Archive.subfolder2.subfolder4
(....)
??? .projects
??? .projects.subfolder1
??? .projects.subfolder2
??? .projects.subfolder2.subfolder3
??? .projects.subfolder2.subfolder4
(...)
In this groups-folder are at the moment more than 3400 folders!
Now to the permissions:
When the folders "Archive", "projects" and so on had been created every
folder got a dovecot-acl for the permission for each user, e.g.:
user=user1 kxeilprwts
user=user2 kxeilprwts
This worked finde, as the dovecot-acl got copied from the parent folder
when the employees created new subfolders.
Now to my problem I'm facing right now:
This client got 2 new employees. So how can I edit all these dovecot-acl
files in all subfolders where these 2 new employess schould get access to?
Thank you in advance!
Yours sincerely,
Lukas Henrich
Furthermore here is the output of dovecot -n:
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 4.4.6-1-pve x86_64 Debian 8.4
auth_username_format = %Ln
disable_plaintext_auth = no
lda_mailbox_autocreate = yes
mail_home = /data/vmail/domain.com/%Ln
mail_location = maildir:~
mail_plugins = " acl"
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 = no
ignore_on_failure = no
inbox = no
list = children
location =
maildir:/data/vmail/domain.com/%%n:INDEXPVT=/data/vmail/domain.com/%n/shared/%%n
prefix = shared/%%n/
separator = /
subscriptions = yes
type = shared
}
namespace {
hidden = no
ignore_on_failure = no
inbox = no
list = yes
location =
maildir:/data/vmail/domain.com/groups:INDEXPVT=/data/vmail/domain.com/%n/groups
prefix = groups/
separator = /
subscriptions = yes
type = public
}
namespace inbox {
inbox = yes
location =
mailbox Archiv {
special_use = \Archive
}
mailbox Archive {
auto = subscribe
special_use = \Archive
}
mailbox Archives {
special_use = \Archive
}
mailbox "Deleted Messages" {
special_use = \Trash
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Entwürfe {
special_use = \Drafts
}
mailbox "Gelöschte Elemente" {
special_use = \Trash
}
mailbox "Gelöschte Objekte" {
special_use = \Trash
}
mailbox Gesendet {
special_use = \Sent
}
mailbox "Gesendete Elemente" {
special_use = \Sent
}
mailbox "Gesendete Objekte" {
special_use = \Sent
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Papierkorb {
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Spam {
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix = INBOX/
separator = /
subscriptions = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
passdb {
args = scheme=CRYPT username_format=%Ln /etc/dovecot/users
driver = passwd-file
}
plugin {
acl = vfile
acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db
sieve = ~/dovecot.sieve
sieve_dir = ~/sieve
}
postmaster_address = admin at domain.com
protocols = " imap lmtp sieve sieve"
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
unix_listener auth-userdb {
group = vmail
user = vmail
}
}
service imap-login {
inet_listener imap {
port = 143
}
}
service lmtp {
inet_listener lmtp {
address = 127.0.0.1
port = 24
}
unix_listener /var/spool/postfix/private/lmtp-dovecot {
group = postfix
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
ssl_cert = </etc/ssl/certs/kmux-dovecot.intern.domain.com.crt
ssl_key = </etc/ssl/private/kmux-dovecot.intern.domain.com.key
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
default_fields = uid=vmail gid=vmail home=/data/vmail/domain.com/%n
driver = ldap
}
userdb {
args = username_format=%Ln /etc/dovecot/users
driver = passwd-file
}
protocol lmtp {
mail_plugins = " acl sieve"
}
protocol lda {
mail_plugins = " acl sieve"
}
protocol imap {
mail_plugins = " acl imap_acl"
}
More information about the dovecot
mailing list