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