我正在从 courier 迁移。到目前为止,迁移工作进展顺利,我可以使用 roundcube 访问我的邮件目录,配额和筛选过滤器功能齐全。现在我需要启用邮件目录共享,但无法弄清楚如何正确配置 dovecot,因为我的设置略有不同。
首先设置
虚拟用户。Maildirs 位于 /var/vmail/domain.tld/username/ 中。没有 Maildir 子目录,Maildir 直接位于主目录中。所以我们有:home = maildir。在配置中它被翻译为:
userdb {
args = uid=vmail gid=vmail home=/var/vmail/%d/%n/
driver = static
}
mail_location = Maildir:~/
a.chaouche 的 Maildir 如下所示:
root@messagerie[10.10.10.20] /var/vmail/domain.tld/a.chaouche # lsa
total 1.9M
drwx------ 26 vmail vmail 4.0K May 8 11:33 .
drwxr-xr-x 5 vmail vmail 4.0K Apr 7 14:31 ..
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .Coupures Streaming
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .Coupures Streaming.JILFM_ZIK_WR
drwxr-xr-x 2 vmail vmail 4.0K Jun 15 2015 courierimaphieracl
drwx------ 2 vmail vmail 4.0K Mar 24 16:05 courierimapkeywords
-rw-r--r-- 1 vmail vmail 342 Apr 25 17:43 courierimapsubscribed
-rw-r--r-- 1 vmail vmail 460K Apr 25 17:47 courierimapuiddb
drwx------ 2 vmail vmail 728K Apr 27 18:24 cur
-rw------- 1 vmail vmail 0 May 8 11:33 dovecot-acl-list
-rw------- 1 vmail vmail 73K Apr 27 14:57 dovecot.index
-rw------- 1 vmail vmail 32K May 8 10:52 dovecot.index.cache
-rw------- 1 vmail vmail 8.5K May 4 10:21 dovecot.index.log
-rw------- 1 vmail vmail 31 Apr 27 15:12 dovecot-keywords
-rw------- 1 vmail vmail 96 Apr 27 10:06 dovecot.mailbox.log
lrwxrwxrwx 1 vmail vmail 21 Apr 27 16:19 .dovecot.sieve -> sieve/roundcube.sieve
-rw------- 1 vmail vmail 197 Apr 27 18:23 .dovecot.svbin
-rw------- 1 vmail vmail 466K Apr 27 18:24 dovecot-uidlist
drwx------ 6 vmail vmail 4.0K Apr 27 10:10 .Drafts
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .Flux audio
-rw-rw---- 1 vmail vmail 136 Mar 27 14:32 ispconfig_mailsize
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .Je dois repondre
drwx------ 6 vmail vmail 4.0K Apr 27 15:17 .Junk
-rw------- 1 vmail vmail 27 May 5 14:16 maildirsize
drwx------ 2 vmail vmail 4.0K Apr 27 18:24 new
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.Imrpimantes
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.Kaspersky
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.Netia
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.R&AOk-seau
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.Streaming
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.SYSTEM
drwx------ 6 vmail vmail 4.0K Apr 27 10:09 .notifs.Webradios
drwx------ 6 vmail vmail 4.0K Apr 27 18:24 .PRTG
drwx------ 6 vmail vmail 4.0K Apr 27 15:17 .Sent
drwx------ 3 vmail vmail 4.0K Apr 27 18:22 sieve
-rw------- 1 vmail vmail 234 Apr 27 10:08 subscriptions
drwx------ 6 vmail vmail 4.0K Apr 27 18:24 .TEST
-rw-r--r-- 1 vmail vmail 0 Apr 5 15:29 testfile
drwx------ 2 vmail vmail 4.0K May 4 10:21 tmp
drwx------ 6 vmail vmail 4.0K Apr 27 18:24 .Trash
root@messagerie[10.10.10.20] /var/vmail/algerian-radio.dz/a.chaouche #
您可以知道我正在从 courier 迁移,因为除了 dovecot 的文件外,courier 的文件仍然在那里。
.notifs 是一个包含许多子文件夹的文件夹,如 .notifs.Webradios、.notifs.Kaspersky 等。
接下来是我想要访问的文件夹
所以[电子邮件保护]想要访问属于 a.chaouche@ 的文件夹备份.domain.tld 给另一个虚拟用户,即在另一个(虚拟)域中(但仍在同一台计算机上)
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche # lsa
total 4.7M
drwx------ 15 root root 4.0K May 8 11:12 .
drwxr-xr-x 3 root root 4.0K May 5 16:16 ..
drwx------ 6 root root 4.0K May 5 16:16 .Archive
drwx------ 6 root root 4.0K May 5 16:16 .Archive.Coupures Streaming
drwx------ 6 root root 4.0K May 5 16:16 .Archive.Flux audio
drwx------ 6 root root 4.0K May 5 16:16 .Archive.notifs
drwx------ 6 root root 4.0K May 5 16:16 .Archive.PRTG
-rw-r--r-- 1 root root 80 May 5 16:16 courierimapacl
drwx------ 2 root root 4.0K May 5 16:16 courierimapkeywords
-rw-r--r-- 1 root root 1015K May 5 16:16 courierimapuiddb
drwx------ 2 root root 1.6M May 5 16:17 cur
-rw-r--r-- 1 root root 37 May 8 11:12 dovecot-acl
-rw-r--r-- 1 root root 36 May 8 11:12 dovecot-acl~
drwx------ 5 root root 4.0K May 5 16:16 .Drafts
-rw-r----- 1 root root 254 May 5 16:16 ispconfig_mailsize
drwx------ 5 root root 4.0K May 5 16:16 .Junk
-rw-r----- 1 root root 1.9K May 5 16:16 maildirsize
drwx------ 2 root root 2.1M May 5 16:17 new
drwx------ 6 root root 4.0K May 5 16:16 .Sent
drwx------ 2 root root 4.0K May 5 16:17 tmp
drwx------ 5 root root 4.0K May 5 16:16 .Trash
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche #
你可以看到我已经放了一个dovecot-acl文件在那里,这里是它的内容:
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche # cat dovecot-acl
[email protected] lr
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche #
现在配置
这里我启用了 lmtp 和 imap 的 acl 插件
mail_plugins = " quota acl"
protocol lmtp {
mail_plugins = " quota acl sieve quota"
}
protocol lda {
mail_plugins = " quota acl sieve"
}
protocol imap {
mail_plugins = " quota acl imap_quota imap_acl"
}
以下是我的用户数据库的配置方式
userdb {
args = uid=vmail gid=vmail home=/var/vmail/%d/%n/
driver = static
}
这里我指定 acl 应该通过 vfile (dovecot-acl 文件) 来强制执行
plugin {
acl = vfile
[...]
}
在这里我尝试了一个名为帕塔格,我不确定我在这里做的是否正确:
namespace partage {
location = maildir:%%h:INDEX=~/%%u
prefix = shared.%%u.
separator = .
type = shared
}
位置还好吗? INDEX 还好吗(我不知道那是干什么用的)
最后,以下是 mail_location 的配置方法。
mail_location = Maildir:~/
完整配置文件
可以看出粘贴
错误
日志中没有错误,只是我没有想要的行为。
期望的行为是:
我得到的行为却是:
答案1
这是我所做的:
$ cd /var/vmail/algerian-radio.dz/a.chaouche/
$ ln -s /var/vmail/backup.algerian-radio.dz/a.chaouche/ .shared.a_chaouche@backup_algerian-radio_dz <---- change "." to "_"
如果我不改变点,它们将作为 dovecot 的子文件夹分隔符出现(Maildir++ 规格?)
如果你这样做[电子邮件保护]可以做任何他想做的事[电子邮件保护]邮箱。我们不希望这样。我们希望他只阅读邮件,而不是删除它。为此,他需要两个权限:阅读和列表,因为他需要列出电子邮件以选择他想要阅读的邮件。如果他没有列表权限,那么 MUA 在尝试列出收件箱中的所有消息时会出错。
我们通过在想要共享的邮箱中添加 dovecot-acl 文件来实现此目的:
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche # cat dovecot-acl
[email protected] lr
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche #
这说明用户[电子邮件保护]有“l”右边(列表)和“r”右边(阅读)。
您可以使用 acl 工具确保其设置符合预期:
root@messagerie[10.10.10.20] ~ # doveadm acl get -u [email protected] INBOX.shared.a_chaouche@backup_algerian-radio_dz
ID Global Rights
[email protected] lookup read
root@messagerie[10.10.10.20] ~ #
- 无需 SQL 表
- 不需要字典映射
- 不需要 doveadm acl 命令
您可以阅读更多内容我的维基页面