前のトピック: Surrogate DO 機能のセットアップ次のトピック: ユーザの非アクティブ状態のチェック


SUDO レコードの定義(タスクの委任)

SUDO クラスのレコードには、コマンド スクリプトが格納されています。ユーザは、借用した権限でそのスクリプトを実行できます。 権限を利用できるかどうかは、スクリプトを実行する sesudo コマンドと SUDO レコードの両方で厳密に制御されます。

注: 対話型の Windows アプリケーション用の SUDO レコードを作成する場合、SUDO レコード用の対話型のフラグを設定する必要があります。 対話型のフラグを設定しない場合、アプリケーションはバックグラウンドで実行されるため、ユーザは操作できません。 詳細については、「トラブルシューティング ガイド」を参照してください。

SUDO レコードでは、comment プロパティを特別な目的に使用します。通常、このような comment プロパティを data プロパティといいます。

comment プロパティの値は、コマンド スクリプトです。禁止(prohibited)または許可(permitted)するスクリプト パラメータ値が必要に応じて追加される場合もあります。 comment プロパティ値全体は一重引用符で囲む必要があります。トロイの木馬の侵入を防ぐために、実行可能ファイルは完全パス名で参照する必要があります。

comment プロパティの形式は、以下のとおりです。

comment('cmd[;[prohibitedvalues][;permittedvalues]]')

prohibited 値および permitted 値のリストは省略できるため、comment プロパティの値は以下のように簡略化することもできます。

newres SUDO NET comment('net use')

このコマンドに指定されている簡略化された値は、sesudoNET コマンドで「net use」コマンドを実行することを表します。 特定のスクリプト パラメータ値が禁止されていないため、すべての値が許可されます。

ワイルドカードと強力な変数を使用すると、prohibited パラメータおよび permitted パラメータを柔軟に指定できるようになります。 使用できるワイルドカードは、Windows の標準的なワイルドカードです。 禁止するパラメータおよび許可するパラメータには、以下の変数を指定することもできます。

変数

説明

$A

英字

$G

既存の CA ControlMinder グループ名

$H

(UNIX のみ)ユーザのホーム ディレクトリで始まるパラメータ

$N

数値

$O

sesudo を実行するユーザの CA ControlMinder での名前

$U

既存の CA ControlMinder ユーザ名

$e

空のエントリ。

ルールに対してパラメータが指定されていない SUDO コマンドを指定する場合に使用します。

$f

既存のファイル名

$g

既存の Windows グループ名

$h

既存のホスト名

$r

Windows 読み取りアクセス権がある既存のファイル

$u

既存の Windows ユーザ名

$w

Windows 書き込みアクセス権がある既存のファイル

$x

Windows 実行アクセス権がある既存のファイル

prohibited パラメータ値のリストをスクリプトに追加する場合は、以下のようにします。

permitted パラメータ値のリストをスクリプトに追加する場合は、以下の操作を行います。

したがって、comment プロパティ全体の形式は、スクリプト、パラメータごとの prohibited 値、パラメータごとの permitted 値の順になります。

comment('cmd; ¥
param1_prohib1 param1_prohib2 ... param1_prohibN | ¥
param2_prohib1 param2_prohib2 ... param2_prohibN | ¥
 ...
paramN_prohib1 paramN_prohib2 ... paramN_prohibN ; ¥
param1_permit1 param1_permit2 ... param1_permitN | ¥
param2_permit1 param2_permit2 ... param2_permitN |
 ...
paramN_permit1 paramN_permit2 ... paramN_permitN')

sesudo ユーティリティでは、ユーザが入力した各パラメータを以下の方法でチェックします。

  1. パラメータ N と permitted パラメータ N が一致するかどうかを確認します (pemitted パラメータ N が存在しない場合、最後の permitted パラメータが使用されます)。
  2. パラメータ N と prohibited パラメータ N が一致するかどうかを確認します (prohibited パラメータ N が存在しない場合、最後の prohibited パラメータが使用されます)。

すべてのパラメータが permitted パラメータと一致し、prohibited パラメータと一致するパラメータが存在しない場合、sesudo はコマンドを実行します。

例: ユーザに net send の実行を許可するタスクの委任をセットアップする

以下の手順では、ユーザ Takashi に net send コマンドの実行を許可して、net start コマンドの実行を許可しない方法を示します。

  1. CA ControlMinder エンドポイント管理の[ユーザ]タブをクリックし、[権限および委任]サブタブをクリックします。

    [権限および委任]メニュー オプションが左側に表示されます。

  2. [タスク委任]をクリックします。

    [タスク委任]ページが表示されます。

  3. [タスクの作成]をクリックします。

    [タスクの作成]ページが表示されます。

  4. 以下のようにダイアログのフィールドに入力します。

フィールド

名前

NET

データ

net;start;send *

所有者

nobody

デフォルト アクセス

なし(オプションの選択なし)

許可されたアクセサ

ユーザ: Takashi

許可: 実行

[保存]をクリックします。

新しいタスクの委任(SUDO)レコードが作成されます。

  1. タスクの委任ルールを確認します。
    1. Takashi でログインします。
    2. コマンド プロンプトを開き、以下のコマンドを実行します。
      	sesudo -do NET start
      

      以下のメッセージが表示されます。

      	sesudo: 'start' をパラメータ番号 1 として使用することは許可されていません。
      

      注: net start は prohibited 値として定義されたので、実行されません。

    3. 以下の値を実行します。
      	sesudo -do NET send comp message
      

      このコマンドは実行されます。

例: 対話式アプリケーションを使用して、権限を必要とする操作を実行する権限をユーザに付与する

以下の例で示すように、ユーザは任意のスナップイン MSC モジュールを使用して、高い権限を必要とする操作を実行できます。

  1. CA ControlMinder エンドポイント管理の[ユーザ]タブをクリックし、[権限および委任]サブタブをクリックします。

    [権限および委任]メニュー オプションが左側に表示されます。

  2. [タスク委任]をクリックします。

    [タスク委任]ページが表示されます。

  3. [タスクの作成]をクリックします。

    [タスクの作成]ページが表示されます。

  4. 以下のようにダイアログのフィールドに入力します。

フィールド

名前

サービス

データ

c:¥winnt¥system32¥mmc.exe

所有者

nobody

オプション

対話式(オプションの選択あり)

デフォルト アクセス

なし(オプションの選択なし)

許可されたアクセサ

ユーザ: Tori

許可: 実行

[保存]をクリックします。

新しいタスクの委任(SUDO)レコードが作成されます。 この[対話式]オプションは、サービスが開始されている状態のときに、ログインしたすべてのユーザが使用できるデスクトップ ユーザ インターフェースを提供します。 このインターフェースは、サービスが LocalSystem アカウントとして実行されている場合にのみ使用可能です。

  1. タスクの委任ルールを確認します。
    1. Tori でログインします。
    2. コマンド プロンプトを開き、以下のコマンドを実行します。
      	sesudo -do services
      
    3. mmc.exe が起動します。

詳細情報:

対話式アプリケーションに関するタスク委任がハングする