ユーザーがログインした後にbashシェルにメッセージを表示するためのさまざまな方法は何ですか?

ユーザーがログインした後にbashシェルにメッセージを表示するためのさまざまな方法は何ですか?

SSH経由でログインするとすぐに、ブランドのグリーティングを表示するシェルとしてbashを使用するCentOS 5.7 VPSがあります。修正しようとしましたが、通常の場所では見つからないようです。これまでのファイルを見てバナーファイルの設定をmotd確認してみました。sshd_configバナーファイルが設定されていません。

ログインメッセージはどこにありますか?

ベストアンサー1

伝統的なUnixシステムディスプレイ/etc/motdユーザーが正常に認証された後、ユーザーのシェルを呼び出す前です。最新のシステムでは、さまざまなファイルを設定または表示できるpam_motdPAMモジュールを介してこれが行われます。/etc/pam.conf/etc/pam.d/*

/etc/motdPrintMotdこのオプションをオフにしないと、SSHサーバー自体が印刷するように構成されている可能性があります。/etc/sshd_config。オフにしないと、PrintLastLog最後のログイン時間も印刷される可能性があります。

You have new mail別の伝統的なメッセージはそれがまたはと言うことができますYou have mail。 PAMがあるシステムでは、pam_mailモジュールを介してこれが行われます。一部のシェルは、利用可能なメールのメッセージを印刷することがあります。

ユーザーのシェルを起動した後、ユーザーの起動ファイルは追加のメッセージを印刷できます。対話型ログインの場合、ユーザーのログインシェルがBourneスタイルのシェルの場合は、、/etc/profileplus ~/.profile~/.bash_profileおよびで~/.bash_loginbashを見つけます。 zshを使用した対話型ログインについては/etc/zprofile、、、/etc/zloginおよびを/etc/zshrc参照してください。 cshにインタラクティブにログインするには、およびを参照してください。~/.zprofile~/.zlogin~/.zshrc/etc/csh.login~/.login

ユーザーのログインシェルがbashで、これが非対話型ログインの場合、bashが実行されます(対話型シェルは、シェルがログインシェルではない場合にのみ実行される~/.bashrcため、これは本当に奇妙です)。~/.bashrcこれは問題の原因となる可能性があります~/.bashrc。シェルが対話型でない場合に問題を解決するには、上部に次のコードを追加することをお勧めします。

if [[ $- != *i* ]]; then return; fi

おすすめ記事