将ACL应用于Dovecot公用名称空间

我想通过Dovecot中的一组公共只读邮箱提供一些邮件列表。 我在我的dovecot(dovecot-2.0.9)configuration中定义了一个公共命名空间,如下所示:

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

我想使这个名字空间中的所有邮箱都是只读的。 我有ACL插件的以下configuration:

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

仔细阅读文档后,好像我有一个邮件文件/var/spool/news/.foo.bar ,我可以把以下内容放到/var/spool/news/.foo.bar/dovecot-acl

 anyone rl 

但是这没有任何影响。 我也尝试用相同的内容创build一个文件/usr/local/etc/dovecot/acls/news.foo.bar ,但是这也没有做任何事情。 我打开了邮件debugging:

 mail_debug = yes 

但是日志不会产生任何与ACL处理相关的东西。 我很想知道是否有人得到这个工作正确,如果是的话,如果你可以提供一些configuration的例子。

此外,如果有任何方法可以做到这一点,不涉及每个邮箱的configuration(例如,将ACL应用于news.*或其他function),那就太棒了。 获取默认ACL的logging行为将是正确的一步。

我看到这是一个旧的post,所以我想你现在已经明白了。 否则,我希望你find以下有用的。

确保你已经定义了一个私有的命名空间,除了公共之外。 有些东西是:

 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中的其他configuration之一)中也需要以下内容来启用acl插件:

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

如果你使用默认的/usr/local前缀安装了dovecot源代码,那么我希望以下方法更适合于configuration全局ACL:

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

重新启动鸽舍,你应该很好去。

您也可以find以下文件:

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

祝你好运!