16.3 PAMモジュールの設定

PAMモジュールの一部は設定可能です。対応する設定ファイルは/etc/securityにあります。この項では、sshdの例(pam_unix2.confpam_env.confpam_pwcheck.confおよびlimits.conf)について簡単に説明します。

16.3.1 pam_unix2.conf

従来のパスワードベースの認証方式は、PAMモジュールpam_unix2によって制御されます。このモジュールは、必要なデータを/etc/passwd/etc/shadow、NISマップ、NIS+テーブル、またはLDAPデータベースから読み込むことができます。このモジュールの動作は、アプリケーション自体のPAMオプションを設定して個別に変更するか、/etc/security/pam_unix2.confを編集してグローバルに変更できます。例 16.6. 「pam_unix2.conf」に、このモジュールの最も基本的な設定ファイルを示します。

例 16.6 pam_unix2.conf

auth:   nullok
account:
password:       nullok
session:        none

モジュールタイプauthおよびpasswordnullokオプションは、対応するタイプのアカウントに空のパスワードを許可するように指定します。また、ユーザは自分のアカウントのパスワード変更を許可されます。sessionモジュールタイプのnoneオプションは、代わりにメッセージが記録されないように指定します(デフォルト)。その他の設定オプションの詳細については、ファイル自体のコメントまたはpam_unix2のマニュアルページを参照してください。

16.3.2 pam_env.conf

このファイルを使用すると、pam_envモジュールが呼び出されるたびに設定される、ユーザ用に標準化された環境を定義できます。それにより、次の構文を使用して環境変数を事前設定できます。

VARIABLE  [DEFAULT=[value]]  [OVERRIDE=[value]]
VARIABLE

設定する環境変数の名前です。

[DEFAULT=[value]]

管理者が設定するデフォルト値です。

[OVERRIDE=[value]]

問い合わせ可能でpam_envによって設定される値です。この値でデフォルト値が上書きされます。

pam_envの典型的な使用例は、DISPLAY変数の取得です。これは、リモートログインが行われるたびに変更されます。この様子を例 16.7. 「pam_env.conf」に示しています。

例 16.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でより詳細な情報を参照してください。

16.3.3 pam_pwcheck.conf

この設定ファイルから、pam_pwcheckモジュールがpasswordタイプの全モジュールのオプションを読み込みます。このファイルに格納されている設定は、個々のアプリケーションのPAM設定よりも優先されます。アプリケーション固有の設定が定義されていない場合、アプリケーションではグローバル設定が使用されます。例 16.8. 「pam_pwcheck.conf」pam_pwcheckに対して空のパスワードとパスワード変更を許可するように指示しています。このモジュールの他のオプションについては、ファイル/etc/security/pam_pwcheck.confを参照してください。

例 16.8 pam_pwcheck.conf

password:    nullok

16.3.4 limits.conf

ファイルlimits.confでは、ユーザ別またはグループ別のシステム制限を設定できます。このファイルは、pam_limitsモジュールで読み込まれます。このファイルを使用すると、絶対に超過できない厳密な制限と、一時的な超過が許される緩やかな制限を設定できます。構文および使用可能なオプションの詳細については、ファイルに含まれているコメントを参照してください。