Lukas Henrich
2016-Oct-14 07:40 UTC
update dovecot-acl in all subfolders in a public folder
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" }