web-dev-qa-db-ja.com

「/ var / mail / rootに新着メールがあります」を無効にできますか?

FreeBSD 9.1でメールチェックを無効にしたいのですが。ログインシェルはBASHなので、追加しようとしました

unset MAILCHECK

/root/.bashrcおよび/root/.profileですが、それらのメッセージは引き続き表示されます。

質問

それらのメッセージを取り除く方法はありますか?

14
Sandra

Dennisの回答に加えて、FreeBSDはMAILログインクラスのすべてのユーザーに対してdefault環境変数を設定します。これは_/etc/login.conf_にあります。

これはいくつかの方法で変更できます。

  1. _/etc/login.conf_を編集し、setenv行から_MAIL=/var/mail/$_を削除します。次に、_cap_mkdb /etc/login.conf_を実行してログインデータベースをコンパイルする必要があります。

  2. 自分またはユーザーのグループにのみ適用される新しいログインクラスを作成します。 _pw usermod <username> -L <class>_を使用して、ユーザーごとにこれを設定します。

  3. ユーザー固有の_~/.login.conf_を作成します。このファイルには、meというレコードが必要です。これにより、グローバル設定のサブセットをオーバーライドできます。同様に、このファイルは_cap_mkdb_でコンパイルする必要があります。

ログイン機能データベースの詳細については、 login.conf(5) を参照してください。

5
James O'Gorman

これらのメッセージはおそらく定期的なレポートです。 daily_show_success=NO/etc/periodic.confを設定することは非常に一般的であるため、「万事良い」メッセージを生成しません。また、daily_output="$destination"は、監視できる電子メールアドレスまたはログファイルに設定する必要があります。同じことをweekly_monthly_にも設定できます-おそらく設定する必要があります。

これらの電子メールを削除するには、maild *を開始してすべてのメッセージを削除し、qを開始して終了します。

メールチェックを無効にすることは通常間違いです。デーモンがローカルルートにメールを配信するように正しく構成されていない場合、知りたいことがあります。何か重要なことを言っている可能性があり、メールチェックを無効にすると、これらのメッセージを見逃してしまいます。

6
Chris S

これで、rootログインのメッセージが処理されます。別のユーザーとしてログインしている場合は、それを無効にする各ユーザーの~/.bashrcに追加する必要があります。または、中央のスタートアップファイル/etc/profileに配置して、すべてのユーザーに対して有効にすることができます。

MAILCHECKを上書きするスタートアップファイルシーケンスの後半でunsetが設定されているかどうかを確認する必要があります。

スタートアップファイルは次のように処理されることに注意してください( Bash Manual から)(強調は私のものです):

対話型ログインシェルとして、または--loginで呼び出されます

Bashがインタラクティブログインシェルとして、または--loginオプションを使用して非インタラクティブシェルとして呼び出されると、最初にファイル/ etc/profileからコマンドが読み取られて実行されます(ファイルが存在します。そのファイルを読み込んだ後、〜/ .bash_profile、〜/ .bash_login、〜/ .profileをこの順序で検索し、読み取ります存在し、読み取り可能な最初のコマンドからコマンドを実行します。シェルの起動時に--noprofileオプションを使用して、この動作を禁止できます。

ログインシェルが終了すると、Bashは〜/ .bash_logoutファイル(存在する場合)からコマンドを読み取って実行します。対話型の非ログインシェルとして呼び出されます

ログインシェルではないインタラクティブシェルが起動すると、Bashは〜/ .bashrcからコマンドを読み取って実行します(そのファイルが存在する場合)。 --norcオプションを使用すると、これを禁止できます。 --rcfile fileオプションは、Bashが〜/ .bashrcの代わりにfileからコマンドを読み取って実行するように強制します。

したがって、通常、〜/ .bash_profileには次の行が含まれます

if [-f〜/ .bashrc];その後。 〜/ .bashrc; fi

ログイン固有の初期化の後(または前)。