dovecot выдает ошибку, если maildir не существует

528
Normadize

Это противоречит желанию большинства пользователей, но как я могу заставить dovecot выдавать ошибку, если maildir не существует, вместо того, чтобы автоматически создавать его самостоятельно?

Auth основан на pam, и я использую Maildir в пользовательском каталоге:

mail_location = maildir:/stor/mail/imap/%u:INDEX=/stor/mail/imap/indexes/%u

Если бы rm -rf /stor/mail/imapтогда я ожидал, что dovecot будет жаловаться при запуске или, по крайней мере, когда пользователь пытается получить его. Тем не менее, он запускается просто отлично без создания директории, а затем автоматически создает, /stor/mail/imap/fooкогда пользователь fooвходит в систему и выбирает.

Я бы не хотел начинать, если /stor/mail/imapне существует, или не смог бы пожаловаться пользователю, когда он пытается получить его.

РЕДАКТИРОВАТЬ: я могу chown root /stor/mail/imap; chmod 700 /stor/mail/imap. Dovecot все еще запускается нормально (grrr). Он извлекает жалобы пользователю при получении, хотя ошибка «Ошибка входа в систему на сервере», что является неточным, хотя лучше, чем молчание.

Я попытался настройки, autoчтобы noв почтовых ящиках Defs, но безрезультатно. кажется, вы не можете установить autoдля INBOX. Я использую конфигурацию dovecot по умолчанию из Ubuntu 16.04.2, где conf.d/15-mailboxes.confесть:

# NOTE: Assumes "namespace inbox" has been defined in 10-mail.conf. namespace inbox { mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Trash { special_use = \Trash } mailbox Sent { special_use = \Sent } } 

и conf.d/10-mail.confимеет:

namespace inbox { # Namespace type: private, shared or public #type = private  # Hierarchy separator to use. You should use the same separator for all # namespaces or some clients get confused. '/' is usually a good one. # The default however depends on the underlying mail storage format. #separator =.  # Prefix required to access this namespace. This needs to be different for # all namespaces. For example "Public/". #prefix =.  # Physical location of the mailbox. This is in same format as # mail_location, which is also the default for it. #location =  # There can be only one INBOX, and this setting defines which namespace # has it. inbox = yes  # If namespace is hidden, it's not advertised to clients via NAMESPACE # extension. You'll most likely also want to set list=no. This is mostly # useful when converting from another server with different namespaces which # you want to deprecate but still keep working. For example you can create # hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/". #hidden = no  # Show the mailboxes under this namespace with LIST command. This makes the # namespace visible for clients that don't support NAMESPACE extension. # "children" value lists child mailboxes, but hides the namespace prefix. #list = yes  # Namespace handles its own subscriptions. If set to "no", the parent # namespace handles them (empty prefix should always have this as "yes") #subscriptions = yes  # See 15-mailboxes.conf for definitions of special mailboxes. } 
0
Вы можете отобрать разрешения на запись в родительский каталог, поэтому, если Dovecot работает как пользователь `dovecot`, он не принадлежит группе и не имеет прав на запись. Вы также можете использовать SELinux для удаления атрибута из Dovecot, чтобы он не мог записывать в каталоги user_t и, следовательно, не мог создавать каталоги, но это намного сложнее. Chloe 7 лет назад 1
@Chloe Я только что вернулся, чтобы постить, что я пытался изменить разрешения DIR. Тем не менее дал +1. Dovecot по-прежнему нормально запускается, даже если это так, но выдает ошибку пользователю, когда пользователь пытается извлечь данные ... однако ошибка (по крайней мере, понимаемая Thunderbird) - «Ошибка входа на сервер». Это неточно, но все же лучше, чем раньше. Normadize 7 лет назад 0

0 ответов на вопрос

Похожие вопросы