完全な仮想メールサーバ/Linux vmail ユーザ
From Gentoo Wiki
Jump to:navigation
Jump to:search
vmail ユーザ
メールボックスに保存するには、UNIX において有効なユーザ ID とグループ ID が必要ですので、メールボックスのほかにこれらの ID も作成せねばなりません。
- ほとんどのサービスには、1000 未満のシステム ID が割り当てられます
- Gentoo では、ユーザ ID は 1000 から始まります
- 5000 番が vmail ユーザのためにえらばれます
同じシステム上で数百ものシェルユーザがあれば、それらと異なる ID を割当てねばなりません。vmail グループも同様です。vmail は、誰にもシェルログインが不可能なアカウントにします。
root #
groupadd -g 5000 vmail
root #
useradd -m -d /var/vmail -s /bin/false -u 5000 -g vmail vmail
メモ
細かい話をすると、特定の uid と gid を指定しなくとも動作はします。しかし、uid と gid について考えておくと常に整理整頓されます。ユーザとグループを追加した後は、/etc/passwd や /etc/group といったファイルを編集して当該ユーザ・グループを適切な位置に移動するのが賢明です。なぜならば、useradd や groupadd はデフォルトでは末尾にある項目をみて番号を追加しますので、この場合では次のユーザには 5001 番が割り当てられてしまいます。これらのファイルが整頓された状態にせねばならないのであれば、そのときに限って、この問題は明らかに重要です。
細かい話をすると、特定の uid と gid を指定しなくとも動作はします。しかし、uid と gid について考えておくと常に整理整頓されます。ユーザとグループを追加した後は、/etc/passwd や /etc/group といったファイルを編集して当該ユーザ・グループを適切な位置に移動するのが賢明です。なぜならば、useradd や groupadd はデフォルトでは末尾にある項目をみて番号を追加しますので、この場合では次のユーザには 5001 番が割り当てられてしまいます。これらのファイルが整頓された状態にせねばならないのであれば、そのときに限って、この問題は明らかに重要です。
ストレージ領域
次に検討すべきはメールストレージのことです。これはパーティションでも、NFS 共有でも、一般的なサブディレクトリでも構いません。ここでは上記のように、/var/vmail にし、32 GiB の RAID10 のパーティションにすることにします。どこに保存するにせよ、所有者を適切に設定しなければなりません。
root #
chown vmail:vmail /var/vmail/
また、権限も適切に設定せねばなりません:
root #
chmod 2770 /var/vmail/
権限をよく確認して、事後にエラーの発生することのないようにしましょう:
root #
ls -ld /var/vmail
vmail ユーザと Postfix
Postfix に対して、メールをどこに保存するか、また、所有者は誰なのか、知らせねばなりません。
メモ
もし必要ならば、ユーザ単位で保存箇所を指定する手法も採用し、その保存箇所をデータベースから検索させることも可能です。例えば、maildirが一箇所に集約されて置かれておらず、ユーザごとのホームディレクトリに置かれているといった状態です。しかしこの文書では vmail ユーザのみにアクセスを許可する設定について説明していますので、こうした各ユーザ単位で運用する手法については触れません。
もし必要ならば、ユーザ単位で保存箇所を指定する手法も採用し、その保存箇所をデータベースから検索させることも可能です。例えば、maildirが一箇所に集約されて置かれておらず、ユーザごとのホームディレクトリに置かれているといった状態です。しかしこの文書では vmail ユーザのみにアクセスを許可する設定について説明していますので、こうした各ユーザ単位で運用する手法については触れません。
# メールボックスの uid と gid を postfix にひもつける
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# 全てのバーチャルメールボックスのベースディレクトリを設定する
virtual_mailbox_base = /var/vmail