完全な仮想メールサーバ/Linux vmail ユーザ

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Complete Virtual Mail Server/Linux vmail user and the translation is 100% complete.
Other languages:

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 といったファイルを編集して当該ユーザ・グループを適切な位置に移動するのが賢明です。なぜならば、useraddgroupadd はデフォルトでは末尾にある項目をみて番号を追加しますので、この場合では次のユーザには 5001 番が割り当てられてしまいます。これらのファイルが整頓された状態にせねばならないのであれば、そのときに限って、この問題は明らかに重要です。

ストレージ領域

次に検討すべきはメールストレージのことです。これはパーティションでも、NFS 共有でも、一般的なサブディレクトリでも構いません。ここでは上記のように、/var/vmail にし、32 GiB の RAID10 のパーティションにすることにします。どこに保存するにせよ、所有者を適切に設定しなければなりません。

root #chown vmail:vmail /var/vmail/

また、権限も適切に設定せねばなりません:

root #chmod 2770 /var/vmail/

権限をよく確認して、事後にエラーの発生することのないようにしましょう:

root #ls -ld /var/vmail
drwxrws--- 3 vmail vmail 4096 Aug 2 07:24 /var/vmail

vmail ユーザと Postfix

Postfix に対して、メールをどこに保存するか、また、所有者は誰なのか、知らせねばなりません。

メモ
もし必要ならば、ユーザ単位で保存箇所を指定する手法も採用し、その保存箇所をデータベースから検索させることも可能です。例えば、maildirが一箇所に集約されて置かれておらず、ユーザごとのホームディレクトリに置かれているといった状態です。しかしこの文書では vmail ユーザのみにアクセスを許可する設定について説明していますので、こうした各ユーザ単位で運用する手法については触れません。
ファイル /etc/postfix/main.cfUID と GID を postfix にひもつける
# メールボックスの uid と gid を postfix にひもつける
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
 
# 全てのバーチャルメールボックスのベースディレクトリを設定する
virtual_mailbox_base = /var/vmail