PAMとログインメッセージの仕組み|pam_motdを理解する

PAMとログインメッセージの仕組み

Linuxログインメッセージの内部動作を理解する|PAMとpam_motdの仕組み

LinuxサーバへSSHでログインすると、認証後にメッセージが表示されることがあります。

例えばUbuntuでは、システム負荷やメモリ使用率、アップデート情報などが自動的に表示されます。また、企業サーバでは運用ルールやメンテナンス情報が表示されることもあります。

これらの表示は単純に /etc/motd を読み込んでいるだけではなく、PAM(Pluggable Authentication Modules)という仕組みによって実現されている場合があります。

特にUbuntuやDebian系ディストリビューションでは pam_motd が利用されており、ログイン時に動的なメッセージを生成しています。

本記事では、PAMの概要からpam_motdの動作原理、設定方法まで詳しく解説します。

PAMとは

PAMは「Pluggable Authentication Modules」の略称です。

日本語では「プラガブル認証モジュール」と呼ばれます。

Linuxにおける認証機能をモジュール化する仕組みであり、SSHやsu、sudo、ログイン処理など様々なサービスで利用されています。

PAMを利用することで、アプリケーション本体を変更することなく認証方法やログイン時の処理を追加できます。

例えば以下のような機能がPAMによって提供されています。

  • パスワード認証
  • アカウント制御
  • ログイン制限
  • 二要素認証
  • パスワードポリシー
  • ログインメッセージ表示

Linuxの認証基盤として非常に重要な仕組みです。

PAMが利用される場面

PAMはさまざまなサービスから利用されています。


SSH
↓
PAM
↓
認証処理

su
↓
PAM
↓
認証処理

sudo
↓
PAM
↓
認証処理

ユーザがログインする際、多くの場合はPAMが介在しています。

PAMの設定ファイル

PAMの設定ファイルは以下のディレクトリに保存されています。


/etc/pam.d/

確認してみましょう。

# ls /etc/pam.d/

代表的なファイルは以下です。

sshd
login
su
sudo
passwd

サービスごとにPAM設定が分かれています。

SSHとPAMの関係

SSH接続時もPAMが利用されています。

設定ファイルを確認してみましょう。

# cat /etc/pam.d/sshd

AlmaLinuxやRocky Linuxでは次のような設定が含まれています。

auth       substack     password-auth
account    required     pam_nologin.so
session    required     pam_limits.so

ここで各種PAMモジュールが呼び出されています。

PAMの4つの機能分類

PAMモジュールは大きく4種類に分類されます。

種類役割
auth認証
accountアカウント管理
passwordパスワード変更
sessionログイン処理

pam_motdは主にsession処理で利用されます。

pam_motdとは

pam_motdは、ログイン後にmotdを表示するためのPAMモジュールです。

ユーザ認証が完了した後に実行されます。


ログイン成功
↓
pam_motd実行
↓
motd表示
↓
シェル開始

つまり、motd表示を担当する専用モジュールです。

pam_motdの設定例

Ubuntuでは以下のような設定が存在します。

session optional pam_motd.so

または以下のような形式もあります。

session optional pam_motd.so motd=/run/motd.dynamic

ログイン時に指定されたファイルを表示します。

固定motdと動的motd

pam_motdでは固定メッセージだけでなく動的メッセージも扱えます。

固定motdの場合です。

/etc/motd

内容は常に同じです。

一方で動的motdはログインのたびに生成されます。


CPU使用率
メモリ使用率
アップデート情報
システム負荷

最新のシステム情報を表示できます。

Ubuntuで利用される動的motd

UbuntuへSSH接続すると以下のような情報が表示されます。


System load
Memory usage
Disk usage
Processes
Users logged in
IPv4 address
Updates available

これらはpam_motdによって生成されています。

update-motdの仕組み

Ubuntuではupdate-motdという仕組みが利用されています。

以下のディレクトリにスクリプトが配置されています。

/etc/update-motd.d/

確認してみましょう。

# ls /etc/update-motd.d/

出力例です。

00-header
10-help-text
50-motd-news
90-updates-available

これらのスクリプトが順番に実行され、動的motdが生成されます。

RHEL系との違い

AlmaLinuxやRocky LinuxではUbuntuほど動的motdは利用されていません。

一般的には以下の構成です。


/etc/motd

必要に応じてcronやシェルスクリプトで更新します。

そのためUbuntuと比較するとシンプルな構成になっています。

pam_motdのメリット

pam_motdには多くの利点があります。

  • ログイン時に自動実行される
  • 最新情報を表示できる
  • システム状態を把握しやすい
  • 運用情報を共有できる
  • スクリプトによる拡張が容易

特に大規模環境で効果を発揮します。

pam_motd利用時の注意点

便利な機能ですが注意点もあります。

ログイン時にスクリプトが実行されるため、処理が重いとログイン時間が長くなります。

例えば以下のような処理は避けるべきです。

  • 大量ファイル検索
  • ネットワーク通信
  • 重いデータ集計
  • 長時間実行されるコマンド

ログイン処理の遅延につながります。

実務での活用例

企業サーバでは以下のような情報を表示することがあります。

Production Server

Hostname : web01

CPU Load : 0.15
Memory Usage : 43%
Disk Usage : 72%

Next Maintenance
2026-08-10 22:00

ログイン直後に必要な情報を把握できます。

トラブルシューティング

motdが表示されない場合は以下を確認します。

  • PAM設定にpam_motdが存在するか
  • /etc/motdが存在するか
  • スクリプトに実行権限があるか
  • SSH設定で無効化されていないか
  • PAM関連エラーが発生していないか

ログファイルも確認すると原因調査に役立ちます。

実務で覚えておきたいポイント

  • PAMはLinuxの認証基盤である
  • SSHもPAMを利用している
  • pam_motdはmotd表示を担当する
  • Ubuntuでは動的motdが標準利用される
  • RHEL系は固定motdが一般的
  • 重いスクリプトは避ける
  • ログイン時の情報共有に活用できる

まとめ

PAMはLinuxの認証やログイン処理を支える重要な仕組みです。

その中でもpam_motdは、ログイン後にメッセージを表示するためのモジュールとして利用されています。

Ubuntuでは動的motdによってシステム情報を表示し、RHEL系では固定motdやスクリプトによる運用が一般的です。

PAMとpam_motdの仕組みを理解することで、Linuxのログイン処理や運用管理をより深く理解できるようになるでしょう。