Postfix+Dovecot バーチャルドメイン環境でユーザーを簡単に追加できるスクリプトを書いた


Postfix, Dovecot, CyrusSASLを用いたバーチャルドメイン環境で簡単にユーザーの追加、削除、リスト表示ができるスクリプトを書きました。
GitHubで公開しています。
GNU Bash, sed等に依存しているので、おそらくBSD等ではそのままでは動かないと思います。その他環境合わせて適宜スクリプトを変更して使ってください。

前提

以下の環境を前提としています。(合わない場合は、適宜スクリプトを変更する必要が有ります。)

  • バーチャルドメイン環境であること。(デフォルトでは/var/mail/vhosts/DOMAIN/USER/以下にMaildir形式でメールを保存している環境であること)
  • Postfix でvirtual_mailbox_maps = hash:/etc/postfix/vmailboxとしていること。
  • CyrusSASLを使用し、pwcheck_method = auxpropとして、sasldbとして/etc/sasldb2を使用していること。
  • Dovecotを使用し、conf.d/10-auth.conf内でauth-passwdfile.conf.extを有効にした上で、その中でdriver = passwd-file とし、またパスワードファイルとして/etc/dovecot/usersを使用していること。

仕組み

  • sasldblistusers2コマンドの結果、/etc/postfix/vmailbox, /etc/dovecot/usersを参照し、それぞれに登録されているメールアドレスが同一かを調べます。(異なっている場合はエラー)
  • ユーザーの追加、削除の際は、saslpasswd2コマンドを使用し、また/etc/postfix/vmailbox, /etc/dovecot/usersの内容を変更します。(/etc/dovecot/usersに登録するパスワードのハッシュを求めるためにdoveadm pwコマンドを使用します)

基本的に上記以外の操作(バーチャルドメインの設定を含む)は手動で行う必要があります。