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
コマンドを使用します)
基本的に上記以外の操作(バーチャルドメインの設定を含む)は手動で行う必要があります。