maildirmake $HOME/Maildir echo $HOME/Maildir/ >$HOME/.qmail
echo '&myaccount@example.com' > $HOME/.qmail
locals
localhost thishost.example.com
me
thishost.example.com
rcpthosts
localhost thishost.example.com
databytes
1073741824
qmail-users(5) 参照。
=local:user:uid:gid:homedir:dash:ext: +loc:user:uid:gid:homedir:dash:pre:
qmailadmin を入れたが動作に不安があるし、qmailadmin から使用する ezlm も使った事がないので、ここは慣れた fml を入れることにする。ルート権限で、
apt-get install fml adduser vpopmail list adduser naney list
naney権限で、メーリングリストを作成。
makefml newml testml
次に vpopmail ユーザで設定をコピー (実際は不要: 注1)。
cp /var/spool/ml/etc/qmail/alias/.qmail-testml* \ ~vpopmail/domains/example.co.jp/ cp /var/spool/ml/etc/qmail/alias/.qmail-owner-testml* \ ~vpopmail/domains/example.co.jp/
root 権限で qmail の方を設定。 /var/spool/ml/etc/qmail/users/assign の
+testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
を参考に、/etc/qmail/users/assign を編集
+example.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml: を以下の行 +example.co.jp-:example.co.jp:64020:64020:/var/lib/vpopmail/domains/example.co.jp:-:: の前に追加。
(注2)。 追加したら qmail-newu。
後は普通の fml。 メーリングリストを作成した naney 権限 で、
makefml config testml makefml addadmin testml naney@example.co.jp makefml add testml 追加したいユーザ名
でOK。
(注1) users/assin の方で指定している /var/spool/ml/etc/qmail/alias 以下の設定が優先して使用されるので、~/vpopmail/domains/example.co.jp にコピーする必要はなし。 もしコピーしてそちらを書き換えても設定には反映されない。
/var/spool/ml/etc/qmail/alias 以下の
(*)のファイルには
naney
と書かれておりそのままでは、UNIXアカウントの naney の方にメールが届く。 もし naney@example.co.jp というバーチャルドメイン上のアカウントの方に届くようにするようするには、それぞれ
&naney@example.co.jp
に置き換えるようにする。
(注2) 上記の例では uid:gid に 1000.1000 (ここでは naney.naney) を指定してしまっている。 Debian 流に list グループでメーリングリストを管理するには、gid を list グループの gid にする必要がある。
先週末に本格始動した Debian BOX、午前中メーリングリストにメールを送ったら配送されない(10日ほど前に設定したやつ)。
log を見る限り permission の様子なのだが。 g+rw したりしたのだが改善されず。 うーん。メーリングリストオーナ(=naney)権限で動くから、その必要もないはずなんだけれどなぁ。vpopmail権限で動いちゃっているのかなぁ。 テストメメーリングリストを作った時には問題なかったのだが。
で小一時間。 /etc/qmail/users/assign
+xxx.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
ふう。xxx.co.jp ですよ。 手順まとめた時に伏せ字にしておいたのだが、そのままコピーしてあったよ。 当然実際にはマッチしないので、その後の、
+yyy.co.jp-:yyy.co.jp:64020:64020:/var/lib/vpopmail/domains/yyy.co.jp:-::
(yyy は本当の名前ね)
行により vpopmail 扱われたと。 で「/var/lib/vpopmail/domains/yyy.co.jp/.qmail-メーリングリスト名」が一応あるから、vpopmail 権限で fml.pl が動いて。
午前中つぶしてしまったよ。
先日メールサーバのメンテをしていたら、自分のアカウントにメールが700通弱たまっているのを発見。
常用しているバーチャルドメインの naney@example.co.jp の方はもちろん定期的に fetch している。 naney 宛のメールも全て naney@example.co.jp に流れると勘違いしていた。 UNIXアカウントの方にもたまっているとは思っていなかったので見落し。マズイ。
vpopmail のPOPサーバから吸い出そうとしたところ失敗。
maildirmake maildirmake $HOME/Maildir echo $HOME/Maildir/ > $HOME/.qmail
naney UNIX用アカウント用の maildir を作成し.qmail を書いて、mbox からこちらへ一旦流すことで吸い出せるようになった。
幸い「メーリングリストが配送するメールの中に配送できないアドレス(退職により削除されたアドレス)があるよ」というエラーメールがほどんどで、重要なものはなかった。 一安心。
/var/spool/ml/etc/qmail/alias 以下にある設定ファイルで、転送先が
naney
となっているのを
&naney@example.co.jp
に修正し、vpopmail 上のバーチャルアカウントの方に届くようにする。
for f in `grep -l naney .*`; do echo '&naney@example.co.jp' > $f ; done
以前 qmail+vpopmail+fmlの設定をした時にこれらのファイルを ~vpopmail/domains/example.co.jp/ にコピーしたのだが、確認したところ実はこれは不要だった。削除。
メーリングリストが正しく配送されなくなったという苦情が午前中に入る。
確認したところ、新たに list グループに登録した管理者(仮に foo)の作業の後に問題が起きているようだ。
管理者 foo がメーリングリスト(仮に testml)に makefml コマンドでユーザの登録・削除をした際に、ファイル「members」の所有者が naney.list から foo.list にかわる。
一方、最初にメーリングリストを作成した時の /etc/qmail/users/assign への記述
+example.co.jp-testml:naney:1000:1000:/var/spool/ml/etc/qmail/alias:-:testml:
では uid.gid に 1000.1000(naney.naney)を指定してしまっている。 naney.naney 権限 で 0660 (foo.list)なファイル「members」を読めずに配送できなくなったというのが原因。
複数の管理者で管理することを想定しないで当初設定してしまったというありがちなミス。
+example.co.jp-testml:naney:1000:38:/var/spool/ml/etc/qmail/alias:-:testml:
に修正したところ問題なくなった (38 は list グループの gid)。
午後になって「今日はメールがあまりこないな」と思っていたら、実はノート PCの /var が 100% を越えていた。 しかし急に何で?
Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda1 9.2G 7.5G 1.3G 86% / tmpfs 505M 16K 505M 1% /dev/shm /dev/hda2 19G 14G 3.9G 79% /home /dev/hda3 185M -64Z 163M 101% /var /dev/hda5 1.2G 347M 813M 30% /tmp
いや、そもそも /var は 3.7GB ぐらい取ってあったはず。……ヤバイ? /var を除くと空の /var/lib と、空の lost+found のみ。 おや? あれ?
一旦シャットダウン。/var が無いので各 daemon が悲鳴をあげつつ終了。 でシングルユーザで起動して fsck。 酷い有様のようだ。 ここまで /var が壊れるとどうしようもないなあ。/var/lib/dpkg 以下がごっそり無いのは Debian 的に痛い。
納品を明日に控えているんですけどね。TeX のドキュメントもまだまだ書かなければいけないんですけどね (/var/lib/texmf も無い)。 メールのチェックもままならない(/var/qmail も /var/spool も無い)。
再インストールかぁ。幸い / と /home が生きているから被害は最小限。 下手に無理して使い続けて他に悪影響が出てファイルを壊したりしないうちに、やってしまった方が良さそうだ。
まずは sarge で Debian GNU/Linux を入れ直す。 USB FDD も USB CD-ROM ドライブも自宅で手元にないという状態の ThinkPad X31 ということで、 HDD からのブートをチョイス。
最初に / パーティションにある /usr/local を /home/naney 以下に退避。 次にGRUBからインストーラが起動するようにする。
mkdir /boot/newinstall cd /boot/newinstall wget http://http.us.debian.org/debian/dists/sarge/main\ /installer-i386/current/images/netboot/debian-installer/i386/initrd.gz wget http://http.us.debian.org/debian/dists/sarge/main\ /installer-i386/current/images/netboot/debian-installer/i386/linux mv linux vmlinuz
/boot/grub/menu.lst に
title New Install kernel (hd0,0)/boot/newinstall/vmlinuz root=/dev/ram0 ramdisk_size=12000 initrd (hd0,0)/boot/newinstall/initrd.gz
を追加してリブート。GRUB のメニューから New Install を選んで起動させ、インストーラを立ち上げる。 パーティションの設定で
あとは普通にネットワークインストール。 思ったより簡単に復旧できそうだ。CD-ROM やフロッピーディスクを作るよりよっぽど簡単。
最小限のパッケージだけ入れたらすぐに sid にアップグレードし、後は作業しながら足りないものを順次インストール・設定。
/etc の下のバックアップは自宅にある外付けHDにあり、これを参照しないかゆいところまで手の届いた設定に戻していくのは大変。 とりあえず 会社では qmail の設定など必要な範囲のみに留めておく。
Linu kernel は以前作った deb 一式をとっておいたのでそれで置き換え。 有線LAN + DHCPな難境だったので、ネットワークまわりほぼ設定不要で助かった。
MADWIFI や cpufreqd あたりの設定は自宅に戻ってから復旧させた。
/var の lost+found をみると 11:35 ぐらいに /var に書き込めなくなったようだ。 気がついたのが 14:30 ぐらいで、再インストールしてある程度作業ができる状態 (メールまわり、X、Emacs まわり他)になったのが、19:00すぎ。
問題確認後、作業中のファイルを失わずに Subversion リポジトリにコミットでき、もう一台のデスクトップ Windows PC で作業を継続できたのは不幸中の幸い。
しかし /var の破損の原因は何なんだろう。HDDの問題に起因するとなると今後もこわすぎるな。
ノート PC の設定変更が面倒だな……と思ったが、考えてみたら普段手で書いて送っているメールは Mew から「直接 www.naney.org か会社の SMTP サーバへ SSH port forwarding 経由で送っている」から、こちらは別に関係ないのか。
とはいえローカルの qmail から送っているメールもあるから、これの設定をする必要あり。 こいつはどうやって設定しようか。
さて、どうしたものか。 皆はそうしているのか、要調査。
朝から ThinkPad X31 の HDD 新しく入れ替えて Debian GNU/Linux sid のインストールを開始。
今日は sarge のネットワークインストール CD イメージからブートしてインストール。 今回はブートドライブにできる「ThinkPad USB ポータブルCD-ROMドライブ」があり、またこのイメージで起動して e1000 が認識できるので楽勝である。
(第1回目は USB FDD + PC カード NIC でインストール、第2回目 は HDD 上のインストーラから GRUB からの起動によるインストールだった)
ヤバイ状態の旧 HDD を USB 外付け HDD ケースに詰めて
を新しい HDD にコピー。
次に環境の復旧。 以下備忘録。
以前作った Linux kernel 2.6.15 deb パッケージをインストールした後 module-assistant で madwifi をインストールするも、ビルドした GCC のバージョンが違ってロードできず。 kernel は GCC 4.0 の時にビルドしたもので、madwifi は現在のバージョンである GCC 4.1 によるビルドであることが問題。
まずは前にビルドした 2.6.15 のソースディレクトリでカーネルパッケージを GCC 4.1 で作りなおしてインストールし、あらためて module-assistant。
module-assistant prepare module-assistant auto-install madwifi
で /etc/network/interfaces を書き戻す。
ここずっと使っていた qmail をこの機会にやめることにした。 Postfix へ。
全体の設定はインストーラに従って設定。
個人設定は、
~/.qmail に
| preline /usr/bin/procmail
として procmail を使っていたので、~/.forward を作って同様に procmail に流すようにする。
"|IFS='' && exec /usr/bin/procmail -f- || exit 75 #naney"
~/.procmailrc は以前のまま。ClamAV と bsfilter でふるいにかけた後、Maildir へ。
以前入れた時は deb が古かったので /usr/local に自前でインストールした。 まずはこれを古い HDD から戻して動作確認後 deb のものに切り替え。
.mew.el の中も
(load "/usr/share/doc/bsfilter/examples/mua/mew4/mew.el")
に変更。
/etc/samba/smb.conf を書き戻す。smbpasswd でパスワード再設定。
とりあえずインストール時の設定で xorg.conf を作る。
Load "freetype"
をコメントアウトして、
Load "xtt"
に変更。
sid は現在 3.5.3 と 3.5.4 混在状態になっているため、依存関係の問題で簡単にはインストールできずてこずった。 kdebase-data と kdelibs-data の 3.5.3 を http://snapshot.debian.net/ からとってきて hold して 3.5.3 系 KDE として各種パッケージをインストール。
skype-beta-1.3.0.30-1_i386.deb をインストール。
一般ユーザ naney の crontab ファイルを再登録。
足りないと気がついた時点で順次インストール。
/etc/auto.master、/etc/auto.misc を書き戻して /etc/init.d/autofs restart。
deb パッケージを公式サイトからダウンロードし、/etc/mt-daapd.conf を書き戻して /etc/init.d/mt-daapd restart
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。