/etc/issue を使ったログオン画面のカスタマイズ

新たに作り出した LFS システムを起動するとログオン画面が表示されます。 これはすっきりとしたシンプルなものです。 (ベアボーンシステムではこうでなければならないものでしょう。) しかしログイン時に何かのメッセージを表示させたいという人が結構います。 これは /etc/issue ファイルを利用すれば実現できます。

/etc/issue は単純なテキストファイルです。 そのファイルには特定のエスケープシーケンス (下記参照) を記述することが可能で、システムに関する情報を含めることができます。 また issue.net というファイルも利用可能で、これはリモートからのログオン時に利用されます。 ただし ssh による接続時の場合は、設定ファイルを通じてオプション設定を行った時に限って、それらのファイルが利用されるものであり、かつ以下に示すエスケープシーケンスは解釈されません

どなたもがまず望むことと言えば、ログオンのたびに画面をクリアすることです。 これを実現するには /etc/issue ファイル内に "クリア" を表すエスケープシーケンスを含めるのが最も簡単です。 実際には clear > /etc/issue というコマンドの実行により実現できます。 これは対応するエスケープシーケンスを /etc/issue ファイルの先頭に挿入します。 これを実行した後にこのファイルを編集した場合には、ファイル内の先頭にある文字 (通常は '^[[H^[[2J' というもの) をそのまま残しておくことが必要です。

[注記]

注記

端末エスケープシーケンスは、端末上にて解釈される特殊コードです。 ここで ^[ というのは ASCII コードの ESC 文字を表します。 そして ESC [ H というのは、カーソルを画面左上に移動させるもので ESC 2 J は画面をクリアするものです。 端末エスケープシーケンスの詳細については http://rtfm.etla.org/xterm/ctlseq.html を参照してください。

以下のシーケンスは agetty コマンドにより認識されるものです。 (このコマンドは /etc/issue を取り扱います。) こういった情報は man agetty を実行すれば得られます。 さらにそこでは、ログオン時のさらに詳細な情報を確認できます。

issue ファイルには、特定のエスケープシーケンスを記述することができます。 これを使えば画面上にさまざまな情報を表示させることができます。 issue シーケンスは、バックスラッシュと英字 1 文字により構成されます。 以下がその詳細です。 (例えば /etc/issue\d を記述すれば、現在日付が表示されることになります。)

b   現在行のボーレート (baudrate) を表示します。
d   現在日付を表示します。
s   システム名、つまりOS名を表示します。
l   現在の TTY 行の名前を表示します。
m   マシンアーキテクチャー名、例えば i686 などを表示します。
n   Insert the nodename of the machine, also known as the hostname.
o   Insert the domainname of the machine.
r   Insert the release number of the kernel, e.g., 2.6.11.12.
t   Insert the current time.
u   Insert the number of current users logged in.
U   Insert the string "1 user" or "<n> users" where <n> is the
    number of current users logged in.
v   Insert the version of the OS, e.g., the build-date etc.