ログイン時にMOTDを更新

ログイン時にMOTDを更新

CentOSサーバーのログイン手順を修正しており、次のコマンドを使用してMOTDを更新したいと思います。linux_logoプログラム。いくつかの方法を試してみましたが、目的の結果は出ませんでした。次のコマンドで始まります。

/usr/bin/linux_logo -c -u -y -t "$R" > /etc/motd

ここで更新する主な情報は稼働時間です。

私のファイルに追加し、フォルダの新しいbashスクリプト.bashrcにコマンドを追加して実行可能にしました。/etc/profile.d/どちらの方法もログイン時に実行されますが、MOTDが印刷された後にのみ実行されるため、ログインが必要です。

また、ランタイムレベル345で起動するように設定するコマンドを含むinitスクリプトを生成しましたが、chkconfig起動時にスクリプトを実行させると思います。

sshd_configまた、私のファイルに以下を追加してみました。

ForceCommand /usr/bin/linux_logo -c -u -y -t "$R" > /etc/motd

これにより、ログインするたびにSSH接続が閉じます。/

これらはすべてインターネット検索中に見つけた同様の投稿の提案なので、何かが欠けているようです。この時点でお手伝いいただきありがとうございます。

要約すると、motdを印刷する前にログイン時に次のようなコマンドを実行したいと思います。可能ですか?

if [ -f /usr/bin/linux_logo ]; then
  /usr/bin/linux_logo -c -u -y -t "$R" > /etc/motd
fi

答え1

~によるとウィキペディア記事/etc/motdと言う今後ログインシェルを実行します。これは.bashrc、ファイルにどの項目が含まれても機能しない理由を説明します。

パスとリンクchkconfigの更新は/etc/rcX.d/実際に起動時にのみ行われます。

調査することができる1つは、それを/etc/motd名前付きパイプ(mkfifo /etc/motd)に置き換え、プログラムが何らかの方法でそのパイプの読み取り値を検出し、必要な出力で埋めるようにすることです。

答え2

ユーザーがログインしている場合、それを実行する理由はありません。ルートのcrontabまたはに追加するだけです/etc/crontab。コマンドを実行して5分ごとにmotdを更新するには、次の行を追加します/etc/crontab

*/5 * * * * root /usr/bin/linux_logo -c -u -y -t "$R" > /etc/motd

答え3

最新のLinuxでは、すべての書き込み操作によって/etc/motd.dynamicログインが変更されます。

「正しい」操作を実行するには、/etc/update-motd.d出力がMOTDを構成するスクリプトを作成して配置します。

バラより

https://ownyourbits.com/2017/04/05/customize-your-motd-login-message-in-debian-and-ubuntu/

関連情報