qmail でメールアカウントだけを削除する方法

メールサーバが、Webサーバやファイルサーバなどを兼ねている場合、サーバへのログインはできるけど、メールは利用できない特殊なユーザが必要になることがある。というか、今そういう状況になったんです。ハイ。

MTA に qmail を採用しており、一般的なインストールをしていると、useradd した時点でメールボックスが作成され、そのユーザはメールの利用が可能になる。普段はコレが便利なんだけど、今回に限っては余計なお世話。メールボックスとか、マジ要らねえ。

単純に Maildir 以下を削除すれば良いかと思ったけど、そうでは無かった。

delivery 76023: deferral: Unable_to_chdir_to_maildir._(#4.2.1)

Maildir を削除したユーザにメールしたら、こんなログが出てしまった。Maildir にアクセスできず、さまよっている模様。どうやら qmail は Maildir の有無で配送の可否を決定しているのでは無いらしい。ユーザの有無が判定基準っぽい。

では、ユーザは存在しているんだけど、qmail には無視させるには、どうしたら良いのか。

「きっとそういうスクリプトが qmail に用意されてら!」と叫んで、1個ずつ man を見ていくと、ありましたよ、ありましたよ。qmail-pw2u ってのが。以下、マニュアル抜粋。

exclude
Ignored users, one per line. If exclude exists, and user is listed in exclude, user is ignored.

ということで、以下のようにすると OK 。

# vi /var/qmail/users/exclude

hoge moge (無視したいユーザ名を記述)
# /var/qmail/bin/qmail-pw2u < /etc/passwd > /var/qmail/users/assign # qmail-newu

最終的に /var/qmail/users 以下に、/etc/passwd から /var/qmail/users/exclude に記述したユーザを除外した cdb ファイル (ユーザ管理DB ) が作成される。あとは、qmail が勝手にコレを見て配送の可否を判断してくれるので、一件落着。お疲れさまでした。

ちなみに、そろそろ qmail も古くなってきた気がする。やっぱり時代は Postfix ですかね。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/273
匿名 at 2005年9月28日 20:41

へー、参考になったね。
今度、勝手に誰かを試してみよう(笑)

昔やったプロジェクトで、Postfixつかったーさね。
あれから進化を遂げてるのかな?

dT at 2005年10月 1日 01:42

気が付けば、Postfix も 2.2.5 まで行っているんですよ!
もはや更新が終わったっぽい qmail より、Postfix に未来はあるかな、と。
脆弱性が無いから qmail には更新が無いという神話もありますが。

# でも、昨年だかに、ついに qmail にも脆弱性見つかったんですよね。