In article <YAS.04May8204443@kirk.is.tsukuba.ac.jp>,
        yas@is.tsukuba.ac.jp writes:
> /var/spool/mail/$USER という0バイトのファイルを、ユーザ登録
> の時の全部作って置いておけばいいんじゃないですか。書込ませた
> くないなら、、/var/spool/mail/ の quota を 0 にしておくとか。

  そうかquotaという手があったか。しかし問題もあって、

  1) ユーザ登録の際にquotaのエントリと/var/spool/mail/$USERも作らねばな
らない。実は当該システムのユーザ登録は現在でも十分に面倒臭い(Windowsと共
用したりいろいろやっているため)ので、さらに複雑にするのははばかられる
  2) /var/spool/mail/を独立パーティションへ引っ越さなければならない。ま
あ、こちらは、運用上何とかなりそう

といったところです。まあ、解決手段の候補には挙げてみます。

> /var/spool/mail/ というのが問題なら、各ユーザのホーム・ディ
> レクトリに飛ばす方法もあります。
> 
> ln -s /home/$USER/mailbox /var/spool/mail/$USER

実は既に ln -s /dev/null /var/spool/mail/$USER なんかも試してみたんです
が、これをするとprocmailは、/var/spool/mail/$USERのモードがおかしいと判
断して修正を試み、/var/spool/mailに書き込めないために元記事と同じ問題を
引き起こしてしまうんです。この動作は設定レベルでは外せないみたい。
  mknod /var/spool/mail/$USER c 1 3; chown $USER mail /var/spool/mail/$USER
というのも、解決法の候補として現在考えています。これは、procmailには文句
を言われません。

> procmail を Set-UID root にするのは、変です。.forward の時点
> でそのユーザの UID になっているわけですよね。それをまた root 
> に戻すなんて。

  いえ、ユーザの.procmailrcを見て動作する頃には特権を落として動作すれば
いいだけですよね。procmailはそうなっていると思います。procmailのドキュメ
ントには、mode 6755を推奨と書いてあります。今回はそうしたくないわけですが。

> 元の話とは関係ないですが、/var/spool/mail/ は、0 バイトのファ
> イルを作って、tmp みたに t ビットを立てておくのが安全です。 
> 0 バイトのファイルを作っておかないと、誰かに先に作れたら、攻
> 撃された方のユーザはメールが受け取れなくなります。

  それは、/var/spool/mailに誰でも書き込みできればの話ですよね。手元のシ
ステムの/var/spool/mailはroot:mail、0775です。普通はそんな感じだと思って
いるんですが。
                                                nide@ics.nara-wu.ac.jp