48.4.3. PAM 設定ファイル形式
各 PAM 設定ファイルには、以下のようにフォーマットされたディレクティブのグループが含まれています。
<module interface> <control flag> <module name> <module arguments>
これらの各要素については、以下のセクションで説明します。
48.4.3.1. モジュールインターフェイス
現在、4 種類の PAM モジュールインターフェイスが利用できます。それぞれは、承認プロセスのさまざまな要素に対応します。
- auth: このモジュールインターフェイスは使用を認証します。たとえば、パスワードの有効性を要求し、検証します。このインターフェイスのあるモジュールは、グループメンバーシップや Kerberos チケットなどの認証情報を設定することもできます。
- account: このモジュールインターフェイスは、アクセスが許可されることを確認します。たとえば、ユーザーアカウントの有効期限が切れたか、または特定の時刻にユーザーがログインできるかどうかを確認できます。
- password: このモジュールインターフェイスは、ユーザーパスワードの変更に使用されます。
- session: このモジュールインターフェイスは、ユーザーセッションを設定および管理します。このインターフェイスのあるモジュールは、ユーザーのホームディレクトリーをマウントしたり、ユーザーのメールボックスを利用可能にするなど、アクセスを許可するために必要な追加のタスクも実行できます。
注記
個別のモジュールは、いずれかのインターフェイスまたはすべてのモジュールインターフェイスを提供できます。たとえば、
pam_unix.so
は 4 つのモジュールインターフェイスをすべて提供します。
PAM 設定ファイルでは、モジュールインターフェイスは以下のように最初のフィールドで定義されます。たとえば、設定の典型的な行は以下のようになります。
auth required pam_unix.so
これにより、PAM が
pam_unix.so
モジュールの認証インターフェイスを使用するように指示します。
48.4.3.1.1. モジュールインターフェイスのスタッキング
モジュールインターフェイスのディレクティブは、重ねて配置することでスタック化 が可能なので、複数のモジュールをまとめて 1 つの目的に使用することができます。モジュールの制御フラグが sufficient または required の値を使用する場合(これらのフラグの詳細については 「制御フラグ」 を参照)、モジュールを一覧表示する順番は認証プロセスにとって重要です。
スタック化により、管理者はユーザーが認証を行う前に、特定の条件を必須とすることが容易になります。たとえば、reboot コマンドは通常、PAM 設定ファイルにあるように、いくつかのスタックされたモジュールを使用します。
~]# cat /etc/pam.d/reboot
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_console.so
#auth include system-auth
account required pam_permit.so
- 最初の行はコメントで、処理されません。
- auth sufficient pam_rootok.so - この行は、UID が 0 であることを確認して、
pam_rootok.so
モジュールを使用して、現在のユーザーが root かどうかを確認します。このテストに成功すると、他のモジュールは参照されず、コマンドが実行されます。このテストが失敗すると、次のモジュールが参照されます。 - auth required pam_console.so - この行は、
pam_console.so
モジュールを使用してユーザーを認証しようとします。このユーザーがすでにコンソールにログインしている場合、pam_console.so
はサービス名(reboot)と同じ名前を持つ/etc/security/console.apps/
ディレクトリーにファイルが存在するかどうかを確認します。そのようなファイルが存在する場合は、認証が成功し、制御が次のモジュールに渡されます。 - #auth include system-auth - この行はコメント化され、処理されません。
- account required pam_permit.so - この行は、
pam_permit.so
モジュールを使用して、root ユーザーまたはコンソールにログインしているすべてのユーザーがシステムを再起動します。