Назад | Перейти на главную страницу

Применение ACL к общедоступному пространству имен Dovecot

Я хотел бы предоставить доступ к некоторым спискам рассылки через набор общедоступных почтовых ящиков только для чтения в Dovecot. У меня есть публичное пространство имен, определенное в моей конфигурации dovecot (dovecot-2.0.9), которое выглядит следующим образом:

namespace {
  type = public
  separator = .
  prefix = news.
  location = maildir:/var/spool/news
  subscriptions = no  
}

Я хотел бы сделать все почтовые ящики в этом пространстве имен доступными только для чтения. У меня есть следующая конфигурация плагина ACL:

plugin {
  acl = vfile:/etc/dovecot/acls:cache_secs=300
}

После просмотра документации мне показалось, что у меня есть почтовая папка. /var/spool/news/.foo.bar что я мог бы поместить следующее в /var/spool/news/.foo.bar/dovecot-acl:

anyone rl

Но это не имеет никакого значения. Я также пробовал создать файл /usr/local/etc/dovecot/acls/news.foo.bar с тем же содержанием, но это тоже ничего не дало. Включил отладку почты:

mail_debug = yes

Но журнал не производит ничего, имеющего отношение к обработке ACL. Мне любопытно узнать, правильно ли это работает, и если да, не могли бы вы предоставить несколько примеров конфигурации.

Кроме того, если есть какой-либо способ сделать это, не требующий настройки для каждого почтового ящика (например, возможность применить ACL к news.* или что-то в этом роде), это было бы круто. Получение задокументированного поведения для работы списков управления доступом по умолчанию было бы шагом в правильном направлении.

Я вижу, что это старый пост, поэтому я полагаю, что вы уже поняли это. В противном случае, я надеюсь, вы найдете следующее полезным.

Убедитесь, что вы определили частный пространство имен в дополнение к общедоступному. Что-то вроде:

namespace {
  type = private
  separator = . # don't mix separators
  prefix =
  #location defaults to mail_location.
  inbox = yes
}

С этой точки зрения mail_location является обязательным параметром, присвойте ему значение, подходящее для вашей среды, например:

mail_location = maildir:~/Maildir

Следующее также требуется в dovecot.conf (или в одной из дополнительных конфигураций в etc / conf.d), чтобы включить плагин acl:

mail_plugins = acl
protocol imap {
  mail_plugins = $mail_plugins imap_acl
} 

Если вы установили dovecot из исходного кода с префиксом по умолчанию /usr/local - как может показаться, - тогда я ожидаю, что для настройки глобальных списков контроля доступа более уместно следующее:

plugin {
  acl = vfile:/usr/local/etc/dovecot/acls:cache_secs=300
}

Перезапустите голубятню, и все будет в порядке.

Вы также можете найти полезную следующую документацию:

  1. http://wiki2.dovecot.org/SharedMailboxes/Public
  2. http://wiki2.dovecot.org/ACL

Удачи!