FreeBSD 9.1でメールチェックを無効にしたいのですが。ログインシェルはBASHなので、追加しようとしました
unset MAILCHECK
/root/.bashrc
および/root/.profile
ですが、それらのメッセージは引き続き表示されます。
質問
それらのメッセージを取り除く方法はありますか?
Dennisの回答に加えて、FreeBSDはMAIL
ログインクラスのすべてのユーザーに対してdefault
環境変数を設定します。これは_/etc/login.conf
_にあります。
これはいくつかの方法で変更できます。
_/etc/login.conf
_を編集し、setenv
行から_MAIL=/var/mail/$
_を削除します。次に、_cap_mkdb /etc/login.conf
_を実行してログインデータベースをコンパイルする必要があります。
自分またはユーザーのグループにのみ適用される新しいログインクラスを作成します。 _pw usermod <username> -L <class>
_を使用して、ユーザーごとにこれを設定します。
ユーザー固有の_~/.login.conf
_を作成します。このファイルには、me
というレコードが必要です。これにより、グローバル設定のサブセットをオーバーライドできます。同様に、このファイルは_cap_mkdb
_でコンパイルする必要があります。
ログイン機能データベースの詳細については、 login.conf(5)
を参照してください。
これらのメッセージはおそらく定期的なレポートです。 daily_show_success=NO
に/etc/periodic.conf
を設定することは非常に一般的であるため、「万事良い」メッセージを生成しません。また、daily_output="$destination"
は、監視できる電子メールアドレスまたはログファイルに設定する必要があります。同じことをweekly_
とmonthly_
にも設定できます-おそらく設定する必要があります。
これらの電子メールを削除するには、mail
、d *
を開始してすべてのメッセージを削除し、q
を開始して終了します。
メールチェックを無効にすることは通常間違いです。デーモンがローカルルートにメールを配信するように正しく構成されていない場合、知りたいことがあります。何か重要なことを言っている可能性があり、メールチェックを無効にすると、これらのメッセージを見逃してしまいます。
これで、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
ログイン固有の初期化の後(または前)。