読み方 : パム
PAM【Pluggable Authenticaton Module】
PAMとは?
Linuxなどのオペレーティングシステムにおいて、認証処理をプログラムから切り離し、柔軟に差し替えられるようにする仕組み。OS標準のユーザー認証をアプリケーションから利用することができる。

PAMでは認証機能を独立したモジュールとして実装し、アプリケーションは共通のインターフェースを通じて呼び出す構造を用いる。プログラム側は個別の認証方式を直接実装する必要がなくなり、設定ファイルの変更だけで認証方法を差し替えられる。認証方式の変更時にアプリケーションの再構築が不要で、運用中のシステムでも段階的な設定変更が行える。
PAMによる処理は「認証」(auth)、「アカウント管理」(account)、「パスワード変更」(password)、「セッション管理」(session)の4つに分類され、それぞれに対応するモジュールを連結して実行する。ログインプログラムやsu、sudo、sshdなどのサービスは、利用時にPAMライブラリを呼び出してこれらの処理を順に適用する。
設定は通常、/etc/pam.conf や /etc/pam.d 配下のファイルに記述され、認証処理の順序や成功・失敗時の扱いを制御フラグで定義する仕組みとなっている。サービスごとに異なるポリシーを設定できるため、同一システム内でも用途に応じた認証条件を細かく調整できる。
認証モジュールの中には、 /etc/passwd や /etc/shadow などローカルのパスワードファイルを参照するものや、LDAPやKerberosなど外部の認証基盤と連携するものが用意されている。ワンタイムパスワードやスマートカードによる多要素認証を追加する場合も、対応モジュールを組み込むことで対応可能となる。