dovecot で public mailbox を使用する

#-- 変数に必要な値を代入
DOMAIN=masdon.life

#-- /etc/dovecot/local.conf に設定を追加する
vi /etc/dovecot/local.conf

#- mail_plugins に acl を追加
mail_plugins = $mail_plugins zlib acl

#- plugin に acl = vfile を追加
plugin {
  ...
  ...
  acl = vfile
}

#- protocol imap の mail_plugins に imap_acl を追加
protocol imap {
  mail_plugins = $mail_plugins imap_acl
  ...
}

#- namespace の設定を追加
namespace inbox {
  type = private
  separator = /
  prefix =
  inbox = yes
}

#- _Public/Test01 と _Public/Test02 を作成する
namespace {
  type = public
  separator = /
  prefix = _Public/
  location = maildir:/var/dovecot/public/%Ld
  subscriptions = yes
  list = yes
  mailbox Test01 {
    auto = subscribe
  }
  mailbox Test02 {
    auto = subscribe
  }
}

#-- dovecot を reload
systemctl reload dovecot

#-- _Public を該当ドメイン全てのユーザで使用できるよう acl を設定
echo "anyone eilprwts" > /var/dovecot/public/${DOMAIN}/dovecot-acl
chown dovecot. /var/dovecot/public/${DOMAIN}/dovecot-acl
chmod 600 /var/dovecot/public/${DOMAIN}/dovecot-acl

#-- 該当ドメインのメールアカウントを設定したメーラーで _Public/Test01と_Public/Test02 フォルダを購読しアクセスすると MBOXが作成される
#-- 作成されたMBOXは、上位フォルダの ACL が設定される
ls -ld /var/dovecot/public/${DOMAIN}/.Test0{1,2}
drwx------ 5 dovecot dovecot 146  2月 17 21:45 /var/dovecot/public/masdon.life/.Test01
drwx------ 5 dovecot dovecot 146  2月 17 21:09 /var/dovecot/public/masdon.life/.Test02

#-- _Public/Test01 を該当ドメイン全てのユーザで使用できるよう acl を設定
echo "anyone eilprwts" > /var/dovecot/public/${DOMAIN}/.Test01/dovecot-acl
chown dovecot. /var/dovecot/public/${DOMAIN}/.Test01/dovecot-acl
chmod 600 /var/dovecot/public/${DOMAIN}/.Test01/dovecot-acl

#-- _Public/Test02 をadminユーザのみで使用できるよう acl を設定
echo "user=admin@${DOMAIN} eilprwts" > /var/dovecot/public/${DOMAIN}/.Test02/dovecot-acl
chown dovecot. /var/dovecot/public/${DOMAIN}/.Test02/dovecot-acl
chmod 600 /var/dovecot/public/${DOMAIN}/.Test02/dovecot-acl

#-- _Public/Test02 にコマンドで acl に特定のユーザの権限を追加
doveadm acl add -u admin@${DOMAIN} _Public/Test02 user=ma3ki@${DOMAIN} expunge insert lookup post read write write-deleted write-seen

#-- _Public/Test02 にコマンドで acl に gr1 というグループの権限を追加
doveadm acl add -u admin@${DOMAIN} _Public/Test02 group=gr1 expunge insert lookup post read write write-deleted write-seen

#-- 権限の確認
doveadm acl get -u admin@${DOMAIN} _Public/Test01
ID     Global Rights
anyone        expunge insert lookup post read write write-deleted write-seen

doveadm acl get -u admin@${DOMAIN} _Public/Test02
ID                        Global Rights
user=admin@masdon.life        expunge insert lookup post read write write-deleted write-seen
user=ma3ki@masdon.life        expunge insert lookup post read write write-deleted write-seen

#-- ACL のフラグの意味 https://doc.dovecot.org/settings/plugin/acl/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)