- ベストアンサー
rootユーザのメールボックスへのメール書き込みを止めたい。
こんにちは。Linux Red Hatで質問です。 ●ユーザ毎のメールボックス(ここでは/var/spool/mail/root) へのエラーメール書き込みを止める方法をご存知でしょうか? 万が一それを止める方法がないなら、rootログインするたびに 「You have mail」と常に表示されるのを止める方法をご存知 でしょうか。 rootでログインすると「You have mail」と常に表示されます。 /var/spool/mail/配下のrootファイルがいつも増大しているのですが、 これを削除すると一時的に出なくなります。 でもしばらくするとまたrootファイルが復活・増大し、rootログインすると再度「You have mail」が表示されます。 中身を見ると、当該マシンのcronで動作するログ削除シェルが実行するたびに、対象ディレクトリが存在しない、というエラーメールを /var/spool/mail/rootに追記しているみたいです。 1時間に一度実行されるシェルなのです。 宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1. cronから実行されたプログラムから標準出力や標準エラー出力に対し出力がなければメールは送信されないので、標準出力と標準エラー出力を/dev/nullにリダイレクトして破棄する 2. crontabファイル内に「MAILTO=""」と設定してcronからメール送信されるのを止める。
その他の回答 (3)
- 774danger
- ベストアンサー率53% (1010/1877)
他には、 ・root以外の他のユーザでcron処理する(権限の問題で無理?) ・loginのソースを書き換えてメールチェックしないようにする(.login等の設定で出ないようにするのは無理っぽいので強引にソース変更) No.1のかたが書かれているように根本的な対処をすべきでは? そもそもrootに届くメールも読まない(届いていることも知りたくない)ような人間にroot権限を付与してマシン管理させること自体大きな間違いな気もしますが 権限を与えるだけならsudoでも何とかなりそうな気がしますけど
お礼
774dangerさん、ご回答ありがとうございました。 ええ、root以外のユーザでのcron処理は難しいですね。 loginコマンドが、結局出力表示しているのですよね。 ソース見なくちゃなりませんか? 設定で何とかできたら本当にうれしい!! でも根本的解決が一番ですね。 rootユーザのやるべきことを放棄する人間が管理するな、というのは 気付かされた点です。いや、本当にありがとうございます。
- yambejp
- ベストアンサー率51% (3827/7415)
どうしてもというなら.forwardで適当な管理者に転送するか、 ヌルデバイスにパイプしてしまえば? しかしrootあてのメールを止めてしまったら致命的なエラーが でたときにどうするつもりなのか疑問が残りますが・・・
お礼
yambejpさん、ご回答ありがとうございました。 えぇ、rootへのメール止めると致命的なエラーを見逃しますが、 出力元で止める方針にするしか仕事上ないです。 確かに必要だからメール通報とかあるのにねぇ。 とにかく、私のとりとめのない質問にご回答いただきありがとう ございました。
- superside0
- ベストアンサー率64% (461/711)
cronは、普通は、シェルからなにもエコーされないときはメールを出しませんから、 そのエラーが出ないように大元から解決すれば、よいと思いますよ。
お礼
superside0さん、ご回答ありがとうございます。 はい、それが一番良い解決策ですよね。。。 その正統路線でいけるように頑張ります。 ありがとうございました。
お礼
Leanさん、ご回答ありがとうございました。 はい、1.のような根本解決法で行きたいと思います。 2.の方法も根本的ですね。ちなみにcronのどの行でもよろしい のでしょうか!?