<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I've been attempting to get to get Shared Folders and ACL's to work under dovecot 1.0rc17. Unfortunately, I've run into some problems (many have already been mentioned on the list), specifically the problem where folder-specific ACL files are not found (and I will not use Global ACL's due to the 100% probability of cross-namespace mailbox name conflicts). My namespace is as follows:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">namespace private {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> separator = /</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> prefix = </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> location = maildir:%h/Maildir</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> inbox = yes</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">}</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">namespace private {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> separator = /</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> prefix = CIW Archived/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> location = maildir:%h/Mailarchive</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">}</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">namespace public {</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> separator = /</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> prefix = CIW Groups/</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> location = maildir:/srv/export/groups:CONTROL=%h/Maildir/public-subscriptions:INDEX=%h/Maildir/public-index</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">}</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I decided to run a quick strace on dovecot's imap daemon while I was getting a folder listing to see why dovecot was not finding the folder-specific ACLs. Below are what I feel are the two key instances in the trace:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Example 1: searching for ACL on private folder</DIV><DIV>open("/etc/dovecot-acls//.DEFAULT", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/home/ghuntress/Maildir/./dovecot-acl", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/etc/dovecot-acls/Work", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/home/ghuntress/Maildir/.Work/dovecot-acl", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>stat("/etc/dovecot-acls/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0</DIV><DIV>open("/etc/dovecot-acls/", O_RDONLY) = 7</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>That looks good. The ACL plugin looking for the global acls first in the correct location, then in the maildir itself for the folder-specific acl.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Example 2: searching for ACL on shared folder</DIV><DIV>open("/etc/dovecot-acls//.DEFAULT", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/home/ghuntress/Maildir/public-subscriptions/./dovecot-acl", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/etc/dovecot-acls/IS.Postmaster", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>open("/home/ghuntress/Maildir/public-subscriptions/.IS.Postmaster/dovecot-acl", O_RDONLY) = -1 ENOENT (No such file or directory)</DIV><DIV>stat("/etc/dovecot-acls/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0</DIV><DIV>open("/etc/dovecot-acls/", O_RDONLY) = 7</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV>Not so good. The ACL plugin is looking under the "CONTROL=" setting from the namespace location configuration, and not under the maildir itself for the folder-specific acl. Since we have to set the separate CONTROL location because of subscription conflicts (<A href="http://wiki.dovecot.org/SharedFolders">http://wiki.dovecot.org/SharedFolders</A>), we either break subscriptions by removing the CONTROL setting, or break ACL's by adding it.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>I'm not terribly familiar with the inner workings of Dovecot, however I can envision two possible fixes:</DIV><DIV>1.) Always have the ACL plugin look under the maildir location (and not the CONTROL override) for folder-specific ACLs</DIV><DIV>or</DIV><DIV>2.) Have dovecot always place subscriptions for shared folders in a user-specific directory regardless of the namespace location configuration (although, this would probably break a ton of production configurations).</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I don't know what either of the above options would break, but I hope it's gives some ideas on how to fix this long-standing bug.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Please let me know if I can be of any more help.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>-Garret<BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">-- </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Garret W. Huntress</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">System Administrator / System Developer</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Geophysical Laboratory</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Carnegie Institution of Washington</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">5251 Broad Branch Road, NW</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Washington, DC 20015</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Email:<SPAN class="Apple-converted-space"> </SPAN>ghuntress@ciw.edu</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Phone: (202)-478-8973</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">AIM: Garret Huntress</DIV></SPAN><SPAN></SPAN></DIV><BR></DIV></BODY></HTML>