PAMモジュール

PAMには次の4つのタイプのモジュールがあり、特定のサービスへのアクセスを制御します。これらのタイプは、認証過程で異なる面に関連づけられます。

注意注意
 

個々のモジュールは、上記モジュールタイプの1つ以上に位置付けられます。例えば、pam_unix.soは4つ全てのコンポーネントを持っています。

PAM設定ファイルでは、モジュールタイプは、最初の面を定義しています。例えば、設定の典型的な行は以下のようになります。

auth        required   /lib/security/pam_unix.so

これは、PAMがpam_unix.soモジュールのauthコンポーネントをチェックしているということを表します。

スタックモジュール

モジュールはスタックされる、つまり次々に置き換えられるので、ある特定の目的に合わせて、複数のモジュールを一緒に使用できます。従って、認証プロセスにおいて、モジュールのスタック順は非常に重要です。

スタックは、管理者が、ユーザー認証の前に、いくつかの状態であるのを要求しやすくなるからです。たとえば、rloginは通常、5つのスタックされた認証方法を使用します。PAM設定ファイルでは次のように示されます。

auth       required     /lib/security/pam_nologin.so
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_env.so
auth       sufficient   /lib/security/pam_rhosts_auth.so
auth       required     /lib/security/pam_stack.so service=system-auth

rloginの使用が承認される際、PAMは/etc/nologinが存在しないこと、暗号化されていないネットワーク接続を通じてrootとしてリモートからログインするのでないこと、環境変数がロードされないことを確認します。その後、rhosts認証が成功すると、接続が認められます。rhosts認証が失敗した場合、標準パスワード認証が実行されます。

モジュールの作成

新しいPAMモジュールはいつでも追加できます。また、PAM対応アプリケーションはそれらのモジュールを使用することができます。たとえば、一時パスワード作成方法を作成し、それをサポートするようなモジュールを作成できる場合、再コンパイルや修正を実行しなくても、PAMを認識するプログラムは、新しいモジュールと新しい一時パスワード作成方法を使用することができます。これは非常に重要です。プログラムを再コンパイルすることなく、テストと同じように認証方法をうまく組み合わせることができるからです。

モジュール作成に関するマニュアルは、/usr/share/doc/pam-バージョン番号/ディレクトリにあります。