lar*_*sks 6 email imap dovecot access-control-list namespaces
我想通过 Dovecot 中的一组公共只读邮箱提供对某些邮件列表的访问。我的 dovecot (dovecot-2.0.9) 配置中有一个公共命名空间定义,如下所示:
namespace {
type = public
separator = .
prefix = news.
location = maildir:/var/spool/news
subscriptions = no
}
Run Code Online (Sandbox Code Playgroud)
我想将此命名空间中的所有邮箱设为只读。我有 ACL 插件的以下配置:
plugin {
acl = vfile:/etc/dovecot/acls:cache_secs=300
}
Run Code Online (Sandbox Code Playgroud)
仔细阅读文档后,我似乎有一个/var/spool/news/.foo.bar
可以将以下内容放入
的邮件文件夹
/var/spool/news/.foo.bar/dovecot-acl
:
anyone rl
Run Code Online (Sandbox Code Playgroud)
但这没有任何影响。我也尝试创建一个/usr/local/etc/dovecot/acls/news.foo.bar
具有相同内容的文件
,但这也没有任何作用。我打开了邮件调试:
mail_debug = yes
Run Code Online (Sandbox Code Playgroud)
但日志不会产生任何与 ACL 处理相关的内容。我很想知道是否有人让它正常工作,如果是这样,您是否可以提供一些配置示例。
此外,如果有任何不涉及每个邮箱配置的方法(例如,将 ACL 应用于news.*
或其他内容的能力),那就太棒了。获取默认 ACL 工作的记录行为将是朝着正确方向迈出的一步。
我看到这是一篇旧帖子,所以我想您现在已经弄清楚了。否则,我希望以下内容对您有所帮助。
确保除了公共命名空间之外,您还定义了私有命名空间。大致如下:
namespace {
type = private
separator = . # don't mix separators
prefix =
#location defaults to mail_location.
inbox = yes
}
Run Code Online (Sandbox Code Playgroud)
此时mail_location
是必填参数,给它一个适合你环境的值,即:
mail_location = maildir:~/Maildir
Run Code Online (Sandbox Code Playgroud)
dovecot.conf
启用 acl 插件(或 etc/conf.d 中的附加配置之一)还需要以下内容:
mail_plugins = acl
protocol imap {
mail_plugins = $mail_plugins imap_acl
}
Run Code Online (Sandbox Code Playgroud)
如果您从源代码安装了 dovecot,默认前缀为/usr/local
- 似乎就是这种情况 - 那么我预计以下内容更适合配置全局 ACL:
plugin {
acl = vfile:/usr/local/etc/dovecot/acls:cache_secs=300
}
Run Code Online (Sandbox Code Playgroud)
重新启动 dovecot,你应该就可以开始了。
您可能还会发现以下文档很有用:
祝你好运!