Solaris Resource Manager 1.1 のシステム管理

アカウント管理

Solaris Resource Manager のアカウント管理 PAM モジュールは、制御されると次のことをします。

  1. Solaris Resource Manager がインストールされ、有効になっているかどうかを判定します。Solaris Resource Manager がインストールされていなかったり、有効でない場合は、このモジュールを無視するように PAM システムに通知します。

  2. ユーザーに l ノードがあるかどうかを判定し、ない場合は管理者による構成が可能な nolnode スクリプトを呼び出します。

  3. ユーザーが要求するサービスとデバイスのアクセス権がユーザーにあるかどうかを判定します。

  4. ユーザーが警告限度を超過しているかどうかを判定し、超過している場合は、ログインを許可しません。

  5. 管理者による構成が可能な every login スクリプトを呼び出します。

いずれかの手順が失敗すると、残りの手順は行われません。Solaris Resource Manager のアカウント管理 PAM モジュールはサービスの使用を拒否します。可能であれば、メッセージがこのサービスを経由してユーザーに渡されます。

スクリプト

デフォルトの missing lnode スクリプトでは、ユーザーの l ノードを作成し、そのことを知らせるメールをシステム管理者に送ります。このデフォルトスクリプトは /etc/srm/nolnode です。このスクリプトを変更するには、ファイル /etc/pam.conf を編集して、Solaris Resource Manager アカウント管理モジュールの行で nolnode オプションの値を変更します。every login スクリプトは通常構成されていません。これを変更する場合は、/etc/pam.conf のいずれかの Solaris Resource Manager アカウント管理モジュールに [everylogin=pathname] オプションを追加します。スクリプトは root ユーザーで呼び出されます。標準の入力、出力、およびエラー処理はクローズされます。スクリプトがゼロ以外で終了すると、アクセスは拒否されます。すべての情報は環境変数として渡されますが、これらの環境変数は、サービスから PAM に渡される情報から直接抽出されます。

USER

プログラムに渡されるログイン名。この名前は、パスワードマップの検索によってすでに認証されています。この名前がない場合は、アカウント管理モジュールがすでにエラーコードを PAM に返しています。

UID

認証されているユーザーのユーザー ID。ユーザー ID を変更するサービス (su など) の場合、これはサービスを呼び出すユーザーのユーザー ID です。ユーザー ID を設定するサービス (login など) の場合、これはターゲットユーザー ID (USER のユーザー ID) です。

RHOST

ネットワークを介するアクセスの場合は、アクセスを要求しているホスト名です。それ以外の場合、この値は実装によって異なります。

SERVICE

アクセスサービスの名前 (rshloginftp など)。

TTY

サービスを呼び出す TTY の名前。厳密な意味で制御端末がないサービス (ftp など) のうち、一部のものはこの変数にプロセス情報を入れます (たとえば、ftp12345 など。12345ftpd のプロセス識別子 (PID))。制御端末がないサービスのうち、それ以外のものは、この変数に何も入れないか、サービス名を入れます。

DEBUG

pam.conf ファイルでデバッグを指定すると、DEBUG が真に設定されます。この指定をしなければ、偽に設定されます。他の環境変数は設定されないので、必要な場合は、どのスクリプトも独自の PATH 変数を指定する必要があります。

デフォルトの「no lnode」スクリプトは、l ノードをデフォルトのスケジューリンググループ (そのようなユーザーがパスワードマップに存在する場合は other、存在しない場合は root) に作成します。そして、システム管理者にメッセージをメールして、新しい l ノードをスケジューリング階層の適切な場所に移す必要があることを知らせます。スクリプトの例については、「デフォルトの「no lnode」スクリプト」を参照してください。

PAM とデバイスグループとの相互作用

Solaris Resource Manager の PAM モジュールは、デバイス階層の端末名とサービス名を検索し、制限値を超過しているか、デバイスフラグが set に評価されると、呼び出し側に「permission denied (アクセス権がありません)」というメッセージを返します。

調べるデバイスカテゴリは、端末名に対しては terminal、要求された種類のサービスに対しては services です。たとえば、rlogin を行うときにネットワークデバイスグループのファイルを使用することがあります。このユーザーに対しては次のフラグがこの順に検査されます (すべてのフラグが group として設定されているとします)。

これらがすべて set と評価されたときだけアクセスが許可されます。さらに、対応するカテゴリ (terminalservices) の制限値が検査されます。