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/