linuxユーザを追加したときsendmailに必要な設定を行う

ごく基本的な内容なのだが自分用メモとして書いておく。

現象

crontabのエラー通知がメールとして届かない。/var/log/maillogを見ると、user_hoge@example.comに送ろうとして、user unknownで失敗している。

環境

とあるVPSで借りているRHEL4。

% cat /etc/redhat-release
Red Hat Enterprise Linux ES release 4 (Nahant Update 4)
% uname -a
Linux phyzz.bz 2.6.18-028stab056 #1 SMP Mon Nov 2 13:19:07 UTC 2009 i686 i686 i386 GNU/Linux

対処

sendmailの仮想ユーザテーブルを書き換え、データベースファイルを更新する。

用語
  • example.com
    →サーバ契約と同時に取得したドメイン
  • user_hoge
    →サーバ引き渡し時に用意されていたユーザ名
  • user_kwappa
    →新しく追加したcronを動作させるユーザ名
/etc/mail/virtusertableの修正
変更前
% cat /etc/mail/virtusertable
apache@example.com                         apache
root@example.com                           user_hoge
postmaster@example.com                     user_hoge
user_hoge@example.com                      user_hoge
@example.com                               error:nouser User unknown

左側のアカウント宛に送られたメールは右側のユーザのメールボックスに転送される。主に管理するユーザはuser_kwappaなので、rootとかpostmaster宛のものも転送設定する。

変更後
# vi /etc/mail/virtusertable
apache@example.com                         user_kwappa root@example.com                           user_kwappa postmaster@example.com                     user_kwappa user_hoge@example.com                      user_hoge user_kwappa@example.com                    user_kwappa @example.com                               error:nouser User unknown
データベースの更新
# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

まとめ

わかってしまえばまぁ当然みたいな内容だけど、たどり着くのはそれなりに大変だった。linuxのユーザアカウントでメールを受け取る機会なんて減ってるしなぁ…と言い訳しつつ、インフラの勉強も継続しなければと反省している。

Links

sendmail — Virtual Domain
http://www.3bit.co.jp/~sasaki/sendmail/vdomain.html

sendmail メールサーバ構築・設定
http://futuremix.org/2003/05/sendmail

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です