我有一个带有Maildirs和虚拟用户设置的dovecot IMAP服务器(版本2.1.7)(例如,所有帐户映射到同一个系统用户)。 我想创build用户A和B之间共享的公共名称空间,但不是任何其他用户。
我试图设置命名空间,如下所示:
namespace { type = public separator = . prefix = INBOX.XFeeds. location = maildir:/var/vhosts/feeds:INDEX=~/Maildir/feeds/ subscriptions = no }
连同一个acl文件:
/var/vhosts/feeds $ cat dovecot-acl user=A lrwstipekxa user=B lrwipk
现在,用户C无法访问XFeeds邮箱的内容,但仍在其IMAP客户端中显示。 我怎样才能确保其他用户不能观察到这个命名空间存在?
一种实现这一点的方法是默认禁用命名空间:
namespace foo { type = public separator = . prefix = INBOX.XFeeds. location = maildir:/var/vhosts/feeds:INDEX=~/Maildir/feeds/ subscriptions = no list = no }
并通过userdb为选定的用户启用它。 例如,如果你正在使用密码文件,把
username:{MD5}password::::::userdb_namespace/foo/list=yes
在文件中。 (感谢dovecot邮件列表上的Steffen Kaiser帮助。)