web-dev-qa-db-ja.com

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

SSH経由でログインした直後にブランドグリーティングを表示するシェルとしてbashを使用するCentOS 5.7 VPSを持っています。私はそれを変更しようと試みましたが、それが通常の場所のどこにあるかを見つけることができないようです。これまでのところ、motdファイルを調べ、sshd_configでバナーファイルの設定を確認しました。バナーファイルが設定されていません。

ログインメッセージがどこにあるのか、他にどこで探すことができますか?

14
Wesley

従来のUNIXシステムでは、ユーザーが正常に認証された後、ユーザーのシェルが呼び出される前に /etc/motd が表示されます。最近のシステムでは、これはpam_motd PAMモジュールによって行われ、/etc/pam.confまたは/etc/pam.d/*で構成して別のファイルを表示できます。

/etc/motdPrintMotdオプションがオフになっていない場合、sshサーバー自体が/etc/sshd_configを出力するように設定されている可能性があります。 PrintLastLogがオフになっていない場合は、前回のログインの時刻も出力されることがあります。

別の従来のメッセージでは、そのYou have new mailYou have mailかがわかります。 PAMを備えたシステムでは、これはpam_mailモジュールによって行われます。一部のシェルは、使用可能なメールに関するメッセージを出力する場合があります。

ユーザーのシェルが起動した後、ユーザーのスタートアップファイルが追加のメッセージを出力する場合があります。対話型ログインの場合、ユーザーのログインシェルがボーンスタイルのシェルの場合は、/etc/profile~/.profileに加えて、bashの~/.bash_profileおよび~/.bash_loginを調べます。 zshへのインタラクティブなログインについては、/etc/zprofile/etc/zlogin/etc/zshrc~/.zprofile~/.zloginおよび~/.zshrcを調べてください。 cshへの対話型ログインについては、/etc/csh.loginおよび~/.loginを調べてください。

ユーザーのログインシェルがbashで、これが非インタラクティブログインである場合、bashは~/.bashrcを実行します(これは、シェルがログインシェルでない場合にのみインタラクティブシェルに対して~/.bashrcが実行されるため、奇妙です) )。これはトラブルの原因となる可能性があります。シェルがインタラクティブでない場合は、~/.bashrcの上部に次のスニペットを含めて、救済することをお勧めします。

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

いくつかあります:

/etc/motd
/etc/issue
/etc/profile - Could echo the message
/etc/profile.d/* - Would be called from /etc/profile

さらに

/etc/bash_bashrc
/etc/.bashrc
/etc/bashrc
$HOME/.profile
$HOME/.bashrc

fortuneのようなものが/usr/shareに表示されているquipsを格納している可能性があるため、これらのスクリプトから呼び出されるすべてのプログラムを実行する必要がある場合もあります。それを分離するには、次のようにします。

. /etc/profile
. /etc/bash.bashrc
. $HOME/.profile
. $HOME/.bashrc

Ubuntuにはファイルもあります:

/etc/motd.tail
8
Karlson

新しいシステムはMOTDコンポーネントを/etc/update-motd.dに保存するため、さまざまなマクロを実行してmotdをカスタマイズし、ログイン時に更新情報やシステムアラートなどを表示できます。

カスタマイズを、00から99までの優先度を持つ別のファイルとして追加します

99-footerは通常、最後に追加するだけで十分で、マクロアイテムを使用したくない場合は/etc/motd.tailをロードします。

3
Fiasco Labs

/etc/Shell、ここで、変更しようとしているメッセージを見つけました。 「#」でコメントアウトしても機能しません。テキストを削除して独自のテキストを追加するだけです。また、ファイルに配置すると、スペースと改行が表示されます。

1
Miguel Herrera