<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="2">Hi,<br>
    </font><br>
    <font size="2"><font size="2"><font size="2">Environment: Dovecot 
          2.3.18 running on CentOS 7, mdbox, LDAP users<br>
          <br>
        </font></font>I'm in the process of moving my mailboxes to NFS
      and moving with lock and index files in temp storage following
      instructions from
      <a class="moz-txt-link-freetext" href="https://doc.dovecot.org/configuration_manual/nfs">https://doc.dovecot.org/configuration_manual/nfs</a>. <br>
      <br>
      I set mail_location as:<br>
    </font>
    <blockquote><font face="monospace">mail_location =
mdbox:/mailstore/%u/mail:VOLATILEDIR=/dev/shm/dovecot/%u:LISTINDEX=/dev/shm/dovecot/%u/dovecot.list.index</font><br>
    </blockquote>
    <font size="2"><font size="2">
      </font>What I discovered is /dev/shm/dovecot is created by the
      initial user who accesses their mail from a client, and with
      permissions 700.  This prevents subsequent users from creating
      their own index and lock files.<br>
    </font>
    <blockquote>
      <pre class="moz-quote-pre" wrap=""># ls -l /dev/shm/dovecot
total 0
drwx------ 2 mary users 60 Mar 25 10:00 mary

</pre>
    </blockquote>
    <font size="2"> Sample error message from maillog during mail
      delivery and from a dsync script.</font>
    <blockquote>
      <pre class="moz-quote-pre" wrap="">
Mar 25 10:37:15 mailsrv1 dovecot: imap(doug)<19284><WKcX5gvbRe7AqFhA>: Error: mkdir(/dev/shm/dovecot/doug) failed: Permission denied (euid=1002(doug) egid=100(users) missing +x perm: /dev/shm/dovecot, dir owned by 97:100 mode=0700)

dsync(test): Error: mkdir(/dev/shm/dovecot/test) failed: Permission denied (euid=2003(test) egid=100(users) missing +x perm: /dev/shm/dovecot, dir owned by 97:100 mode=0700)

</pre>
    </blockquote>
    <font size="2">I couldn't locate documentation or discussions on how
      to set the ownership or permissions for /dev/shm/dovecot in the
      Dovecot configuration files. <br>
      <br>
      As a hack, I added this to /usr/libexec/dovecot/prestartscript. </font><font
      size="4"><br>
    </font>
    <blockquote><font face="monospace">! [[ -d  /dev/shm/dovecot ]]
        && mkdir /dev/shm/dovecot</font><br>
      <font face="monospace">chown dovecot:users /dev/shm/dovecot</font><br>
      <font face="monospace">chmod 770 /dev/shm/dovecot</font></blockquote>
    <font size="2">This solved the problem, but left me wondering if I
      missed something obvious or if I am setting myself up for a
      problem later on, like with a Dovecot version upgrade. </font><font
      size="2"><font size="2">I could run these commands at bootup out
        of rc.local or a systemd script rather than customizing a
        Dovecot provided script. <br>
        <br>
        Is there a appropriate way of doing this that I missed?</font><font
        size="4"><br>
      </font></font><font size="2"><br>
      TIA,<br>
      Doug<br>
    </font>
  </body>
</html>