はじめに
AmazonLinux
とかのサーバにログイン時に表示されるバナーについて、WSL
のUbuntu
+zsh
でも同じことしてみたいなと思ったのでやってみる。
環境
Windows 11 Professional
Ubuntu 24.04 LTS
WSL2
zsh
バナー表示について
Ubuntu
でのバナー表示は、update-motd
というところで管理している。
- update-motd | ubuntu manuals
https://manpages.ubuntu.com/manpages/noble/man5/update-motd.5.html
update-motdについて
update-motdとは
update-motd
(Message of the Day)は、ユーザーがSSHやターミナルにログインした際に表示される情報メッセージを動的に生成する仕組みである。
システムの状態や管理情報を簡潔に確認できるため、特にサーバー管理者にとって便利なツールとなっている。
動作の仕組み
/etc/update-motd.d
ディレクトリ内のスクリプトを実行することで、MOTDが生成される。- 各スクリプトは番号でソートされ、昇順で実行される。例えば、
00-header
→10-help-text
→50-landscape-sysinfo
の順で処理が進む。 - スクリプトの出力結果は結合され、最終的にログイン時に表示される。
これにより、ログインするたびに最新の情報を動的に反映したメッセージが表示される。
主な構成ファイル
/etc/update-motd.d/
:MOTD生成スクリプトが配置されるディレクトリ。/etc/motd
:生成された最終的なMOTDの内容が一時的に格納される場所。/etc/default/motd-news
:ニュースフィード(Canonicalからの情報)の設定ファイル。
カスタマイズ方法
スクリプトの編集
スクリプトを追加・削除することで、MOTDを自由にカスタマイズできる。たとえば、新たに99-custom-message
というスクリプトを作成し、以下の内容を記述すると、カスタムメッセージが表示される。
#!/bin/sh
echo "Welcome to your custom Ubuntu server!"
作成後は、スクリプトに実行権限を付与する。
sudo chmod +x /etc/update-motd.d/99-custom-message
不要なスクリプトの無効化
表示を減らしたい場合、スクリプトを削除するか、無効化すればよい。無効化するには、ファイル名の拡張子を変更する(例:50-landscape-sysinfo
→ 50-landscape-sysinfo.disabled
)。
静的なメッセージに変更する
動的なMOTDを無効化して、静的なメッセージだけを表示する場合は、以下の手順を実行する。
/etc/motd
に表示したいメッセージを直接記述する。/etc/pam.d/sshd
や/etc/pam.d/login
のpam_motd.so
に関連する設定をコメントアウトする。
これにより、ログイン時には静的な内容のみが表示される。
利用例
- システムの負荷やディスク容量を表示
- 最新のセキュリティアップデート情報を通知
- サーバーに特化したカスタムメッセージの表示
例えば、以下のようにディスク使用率を表示するスクリプトを作成できる。
#!/bin/sh
echo "Disk usage:"
df -h / | awk 'NR==2 {print $5}'
zshでupdate-motdを読み込ませる
デフォルトだと、update-motd
を読み込んでくれないので、~/.zshrc
の末尾に以下を記載する。
run-parts /etc/update-motd.d
ログアウトしてログインをし直すと、update-motd
の内容が表示される。
バナー表示するスクリプトを作成する
では、/etc/update-motd.d
に新しくバナーを表示するスクリプトを用意する。
現在の状態を確認する。
ll /etc/update-motd.d
total 32K
-rwxr-xr-x 1 root root 1.2K Apr 22 2024 00-header
-rwxr-xr-x 1 root root 1.2K Apr 22 2024 10-help-text
lrwxrwxrwx 1 root root 46 Jul 20 17:30 50-landscape-sysinfo -> /usr/share/landscape/landscape-sysinfo.wrapper
-rwxr-xr-x 1 root root 5.0K Apr 22 2024 50-motd-news
-rwxr-xr-x 1 root root 296 Apr 2 2024 91-contract-ua-esm-status
-rwxr-xr-x 1 root root 558 Nov 10 2023 91-release-upgrade
-rwxr-xr-x 1 root root 165 Feb 13 2024 92-unattended-upgrades
30-banner
というスクリプトを作成する。
以下で、バナーを作成する。
- Text to ASCII Art Generator (TAAG)
https://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
sudo vi /etc/update-motd.d/30-banner
#!/bin/sh
printf "
▄█ ▄█▄ ▀█████████▄ ███ █▄ ▄████████ ▄█ █▄ ▄█
███ ▄███▀ ███ ███ ███ ███ ███ ███ ███ ███ ███
███▐██▀ ███ ███ ███ ███ ███ █▀ ███ ███ ███▌
▄█████▀ ▄███▄▄▄██▀ ███ ███ ███ ▄███▄▄▄▄███▄▄ ███▌
▀▀█████▄ ▀▀███▀▀▀██▄ ███ ███ ▀███████████ ▀▀███▀▀▀▀███▀ ███▌
███▐██▄ ███ ██▄ ███ ███ ███ ███ ███ ███
███ ▀███▄ ███ ███ ███ ███ ▄█ ███ ███ ███ ███
███ ▀█▀ ▄█████████▀ ████████▀ ▄████████▀ ███ █▀ █▀
▀
";
exit 0;
こんな感じで作ってみた。
実行権限を付与しておく。
sudo chmod +x /etc/update-motd.d/30-banner
動作確認
いいね!
参考
update-motd | ubuntu manuals
https://manpages.ubuntu.com/manpages/noble/man5/update-motd.5.htmlText to ASCII Art Generator (TAAG)
https://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
おわりに
ログイン時にビビらせることもできるので、これを使って驚かせよう!