将 ACL 应用于 Dovecot 公共命名空间

将 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 处理相关的内容。我很好奇是否有人让这个功能正常工作,如果是的话,您是否可以提供一些配置示例。

此外,如果有任何方法可以做到这一点而不涉及每个邮箱的配置(例如,能够应用 ACLnews.*或其他东西),那就太棒了。让记录的默认 ACL 行为发挥作用将是朝着正确方向迈出的一步。

答案1

我看到这是一篇旧帖子,所以我想你现在已经明白了。否则,我希望你觉得下面的内容有帮助。

确保你已经定义了私人的命名空间,除了公共命名空间之外。类似以下内容:

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-- 看起来似乎是这样 -- 那么我预计以下内容更适合配置全局 ACL:

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

重新启动 dovecot 就可以了。

您可能还会发现以下文档很有用:

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

祝你好运!

相关内容