Ben Morrow writes:

In any case, it's likely that the delivery process looks in the user's
home directory even if delivery is to a separate mail spool, unless
you've taken steps to prevent this.

I can confirm this.  I think the reason is that dovecot changes to the
user's home directory so that it has a place to dump core.  This causes
problem for my setup since I user per-user NFS mounts, so a delivery to an
internal mailing list caused hundreds of NFS automounts.

I patched this behaviour out, but there is probably a more elegant solution
(unset MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS? How?).

Joseph Tam <jtam.h...@gmail.com>

--- ./src/lib-storage/mail-storage-service.c~   Sat May 19 08:42:12 2012
+++ ./src/lib-storage/mail-storage-service.c    Mon Jun 25 22:00:57 2012
@@ -615,21 +615,21 @@

-       if ((user->flags & MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP) != 0 &&
-           (user->flags & MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS) == 0) {
-               /* we don't want to write core files to any users' home
-                  directories since they could contain information about other
-                  users' mails as well. so do no chdiring to home. */
-       } else if (*home != '\0' &&
-                  (user->flags & MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR) == 0) {
-               /* If possible chdir to home directory, so that core file
-                  could be written in case we crash. */
-               if (chdir(home) < 0) {
-                       if (errno == EACCES) {
-                               i_error("%s", eacces_error_get("chdir",
-                                               t_strconcat(home, "/", NULL)));
-                       } if (errno != ENOENT)
-                               i_error("chdir(%s) failed: %m", home);
-                       else if (mail_set->mail_debug)
-                               i_debug("Home dir not found: %s", home);
-               }
-       }
+//     if ((user->flags & MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP) != 0 &&
+//         (user->flags & MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS) == 0) {
+//             /* we don't want to write core files to any users' home
+//                directories since they could contain information about other
+//                users' mails as well. so do no chdiring to home. */
+//     } else if (*home != '\0' &&
+//                (user->flags & MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR) == 0) {
+//             /* If possible chdir to home directory, so that core file
+//                could be written in case we crash. */
+//             if (chdir(home) < 0) {
+//                     if (errno == EACCES) {
+//                             i_error("%s", eacces_error_get("chdir",
+//                                             t_strconcat(home, "/", NULL)));
+//                     } if (errno != ENOENT)
+//                             i_error("chdir(%s) failed: %m", home);
+//                     else if (mail_set->mail_debug)
+//                             i_debug("Home dir not found: %s", home);
+//             }
+//     }

Reply via email to