如何在 dovecot 中共享文件夾?
我是從快遞搬過來的。到目前為止,遷移執行良好,我可以使用圓形立方體訪問我的郵件目錄,配額和篩子過濾器功能齊全。現在我需要啟用 maildir 共享並且無法弄清楚如何正確配置 dovecot,因為我的設置有點不同。
首先是設置
虛擬使用者。郵件目錄位於 /var/vmail/domain.tld/username/ 中。沒有Maildir子目錄,Maildir直接放在home目錄下。所以我們有: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 想要訪問屬於另一個虛擬使用者的 a.chaouche@backup .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 user=a.chaouche@algerian-radio.dz 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 [...] }
在這裡我嘗試了一個名為partage的共享命名空間,我不確定我在這裡所做的是否正確:
namespace partage { location = maildir:%%h:INDEX=~/%%u prefix = shared.%%u. separator = . type = shared }
位置好嗎?索引好嗎(我不知道那是為了什麼)
最後,這裡是 mail_location 的配置方式。
mail_location = Maildir:~/
完整的配置文件
在這個貼中可以看到
錯誤
日誌中沒有錯誤,除非我沒有所需的行為。
期望的行為是:
我得到的行為是:
這是我所做的:
$ 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++ 規範?)
如果您這樣做,那麼 a.chaouche@algerian-radio.dz 可以使用 a.chaouche@backup.algerian-radio.dz 郵箱做任何他想做的事情。我們不想要這個。我們希望他只閱讀郵件,而不是刪除它。為此,他需要兩個權限:閱讀課程和列表,因為他需要列出電子郵件以便選擇他想要閱讀的電子郵件。如果他沒有列出權限,則 MUA 在嘗試列出收件箱中的所有消息時會出錯。
我們通過在我們想要共享的郵箱中添加一個 dovecot-acl 文件來做到這一點:
root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche # cat dovecot-acl user=a.chaouche@algerian-radio.dz lr root@messagerie[10.10.10.20] /var/vmail/backup.algerian-radio.dz/a.chaouche #
這表示使用者 a.chaouche@algerian-radio.dz 具有“l”權限(列表)和“r”權限(閱讀)。
您可以使用 acl 工具確保其設置符合預期:
root@messagerie[10.10.10.20] ~ # doveadm acl get -u a.chaouche@algerian-radio.dz INBOX.shared.a_chaouche@backup_algerian-radio_dz ID Global Rights user=a.chaouche@algerian-radio.dz lookup read root@messagerie[10.10.10.20] ~ #
- 不需要 SQL 表
- 不需要字典映射
- 不需要 doveadm acl 命令
您可以在我的 wiki 頁面上閱讀更多內容