PAMモジュールの一部は設定可能です。対応する設定ファイルは/etc/securityにあります。この項では、sshdの例(pam_unix2.conf、pam_env.conf、pam_pwcheck.confおよびlimits.conf)について簡単に説明します。
従来のパスワードベースの認証方式は、PAMモジュールpam_unix2によって制御されます。このモジュールは、必要なデータを/etc/passwd、/etc/shadow、NISマップ、NIS+テーブル、またはLDAPデータベースから読み込むことができます。このモジュールの動作は、アプリケーション自体のPAMオプションを設定して個別に変更するか、/etc/security/pam_unix2.confを編集してグローバルに変更できます。例 27.6. 「pam_unix2.conf」に、このモジュールの最も基本的な設定ファイルを示します。
authおよびpasswordモジュールタイプのnullokオプションは、対応するタイプのアカウントに空のパスワードを許可するように指定します。また、ユーザは自分のアカウントのパスワード変更を許可されます。sessionモジュールタイプのnoneオプションは、代わりにメッセージが記録されないように指定します(デフォルト)。その他の設定オプションの詳細については、ファイル自体のコメントまたはpam_unix2のマニュアルページを参照してください。
このファイルを使用すると、pam_envモジュールが呼び出されるたびに設定される、ユーザ用に標準化された環境を定義できます。それにより、次の構文を使用して環境変数を事前設定できます。
VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
VARIABLE設定する環境変数の名前です。
[DEFAULT=[value]]管理者が設定するデフォルト値です。
[OVERRIDE=[value]]問い合わせ可能でpam_envによって設定される値です。この値でデフォルト値が上書きされます。
pam_envの典型的な使用例は、DISPLAY変数の取得です。これは、リモートログインが行われるたびに変更されます。これを例 27.7. 「pam_env.conf」に示します。
例 27.7. pam_env.conf
REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
1行目では、REMOTEHOST変数の値がlocalhostに設定されており、pam_envが他の値を判別できない場合にこの値が使用されます。DISPLAY変数には、REMOTEHOSTの値が含まれています。ファイル/etc/security/pam_env.confでより詳細な情報を参照してください。
この設定ファイルから、pam_pwcheckモジュールがpasswordタイプの全モジュールのオプションを読み込みます。このファイルに格納されている設定は、個々のアプリケーションのPAM設定よりも優先されます。アプリケーション固有の設定が定義されていない場合、アプリケーションではグローバル設定が使用されます。例 27.8. 「pam_pwcheck.conf」はpam_pwcheckに対して空のパスワードとパスワード変更を許可するように指示しています。このモジュールの他のオプションについては、ファイル/etc/security/pam_pwcheck.confを参照してください。