Linuxでログインユーザーへメッセージを送る方法

Linuxでログインユーザーへメッセージを送る方法

ここでは、CUI環境のLinuxマシンで、ログイン前やログイン時、ログイン中といったタイミングで、ユーザーにメッセージを通知する方法を解説します。

ログイン画面にメッセージを表示

コンソール接続のときは

CUI環境のLinuxでは、コンソールのログイン画面に以下のようなメッセージが表示されています。ここに表示されている内容は「/etc/issue」ファイルを編集することでカスタマイズできます。(日本語は正常に表示できません。)

Linuxでログインユーザーへメッセージを送る方法

また、ファイルには特殊文字によってさまざまなシステム情報を表示することができます。主な特殊文字は、次のとおりです。

文字列説明
\d日付
\l仮想コンソール番号
\nホスト名
\t現在の時刻
\Uログインしているユーザー数

たとえば、ログイン画面に現在の時刻とログインしているユーザー数も表示させたいときは、/etc/issueファイルに以下のように追記します。

# vi /etc/issue

\S
Kernel \r on an \m
\t \U

すると、ログイン画面には以下のように表示されます。

Linuxでログインユーザーへメッセージを送る方法

SSH接続したときは

SSH経由でログインするときの画面にメッセージを表示させたいときは、SSHサーバーの設定ファイル「/etc/ssh/sshd_config」に、表示させたいメッセージが記述されているテキストファイルを指定します。

# vi /etc/ssh/sshd_config
Banner /tmp/sample.txt

# vi /tmp/sample.txt
このサーバーはWebサーバーです。

設定ファイルを編集したら、サービスを再起動することで設定が反映されます。

# systemctl restart sshd

以上で、SSH接続したときのログイン画面に指定したメッセージを表示できます。

$ ssh [email protected]
このサーバーはWebサーバーです。
[email protected]'s password:

ログイン時にメッセージを表示

ユーザーがログインしたときにメッセージを通知したいときは「/etc/motd」ファイルに表示したい内容を記述します。

ログイン中のユーザーへメッセージを表示

すべてのユーザーに送信

ログイン中のすべてのユーザーに今すぐメッセージを送りたいときは「wall」コマンドを使用します。

wallコマンドでログイン中のすべてのユーザーにメッセージを送るときは、root権限で以下のようにコマンドを実行します。

# wall "The system will shutdown soon."

改行を含む複数行を送りたいときは、wallコマンドを単独で実行します。すると、キーボードからの入力待ちとなるので、メッセージを入力し、最後に[Ctrl]+[D]キーで入力したメッセージを送信します。

個別のユーザーに送信

ログイン中の特定のユーザーにだけメッセージを送りたいときは「write」コマンドを使用します。

writeコマンドで特定のユーザーにメッセージを送るときは、まず以下のようにコマンドを実行します。

$ write <ユーザー名>

すると、キーボードからの入力待ちとなるので、メッセージを入力し、最後に[Ctrl]+[D]キーで入力したメッセージを送信します。(日本語は正常に表示できません。)

あとがき

複数のユーザーがログインするようなLinuxサーバーで、メンテナンスなどを通知するときなどで利用価値がありそうです。