web-dev-qa-db-ja.com

Dovecotパブリック名前空間へのACLの適用

Dovecotの一連の公開された読み取り専用メールボックスを介していくつかのメーリングリストへのアクセスを提供したいと思います。 dovecot(dovecot-2.0.9)構成で、次のようなパブリック名前空間を定義しています。

namespace {
  type = public
  separator = .
  prefix = news.
  location = maildir:/var/spool/news
  subscriptions = no  
}

この名前空間のすべてのメールボックスを読み取り専用にします。 ACLプラグインの構成は次のとおりです。

plugin {
  acl = vfile:/etc/dovecot/acls:cache_secs=300
}

ドキュメントを熟読した後、私はメールフォルダ/var/spool/news/.foo.barを持っているようで、以下を/var/spool/news/.foo.bar/dovecot-aclに配置できました。

anyone rl

しかし、それは何の影響もありません。同じ内容のファイル/usr/local/etc/dovecot/acls/news.foo.barも作成してみましたが、何もしませんでした。メールのデバッグをオンにしました:

mail_debug = yes

ただし、ログには、ACL処理に関連すると思われるものは何も生成されません。誰かがこれを正しく機能させているかどうか、もしそうなら、いくつかの構成例を提供できるかどうか知りたいです。

また、メールボックスごとの構成を伴わないこれを行う方法がある場合(たとえば、ACLをnews.*などに適用する機能)、それは素晴らしいことです。デフォルトのACLの動作を文書化して機能させることは、正しい方向への第一歩となるでしょう。

6
larsks

これは古い投稿だと思いますので、これはもう理解できていると思います。それ以外の場合は、以下がお役に立てば幸いです。

パブリック名前空間に加えて、private名前空間を定義していることを確認してください。次のようなもの:

namespace {
  type = private
  separator = . # don't mix separators
  prefix =
  #location defaults to mail_location.
  inbox = yes
}

この時点で、mail_locationは必須パラメータです。環境に適した値を指定してください。つまり、次のようになります。

mail_location = maildir:~/Maildir

Aclプラグインを有効にするには、dovecot.conf(またはetc/conf.dの追加構成の1つ)でも次のものが必要です。

mail_plugins = acl
protocol imap {
  mail_plugins = $mail_plugins imap_acl
} 

デフォルトのプレフィックスが/usr/localのdovecotをソースからインストールした場合(そうであるように思われます)、グローバルACLの構成には次の方が適切であると思います。

plugin {
  acl = vfile:/usr/local/etc/dovecot/acls:cache_secs=300
}

Dovecotを再起動すると、準備が整います。

次のドキュメントも役立つ場合があります。

  1. http://wiki2.dovecot.org/SharedMailboxes/Public
  2. http://wiki2.dovecot.org/ACL

幸運を!

2
Marty