SUDO クラスのレコードには、コマンド スクリプトが格納されています。ユーザは、借用した権限でそのスクリプトを実行できます。 権限を利用できるかどうかは、スクリプトを実行する sesudo コマンドと SUDO レコードの両方で厳密に制御されます。
注: 対話型の Windows アプリケーション用の SUDO レコードを作成する場合、SUDO レコード用の対話型のフラグを設定する必要があります。 対話型のフラグを設定しない場合、アプリケーションはバックグラウンドで実行されるため、ユーザは操作できません。 詳細については、「トラブルシューティング ガイド」を参照してください。
SUDO レコードでは、comment プロパティを特別な目的に使用します。通常、このような comment プロパティを data プロパティといいます。
comment プロパティの値は、コマンド スクリプトです。禁止(prohibited)または許可(permitted)するスクリプト パラメータ値が必要に応じて追加される場合もあります。 comment プロパティ値全体は一重引用符で囲む必要があります。トロイの木馬の侵入を防ぐために、実行可能ファイルは完全パス名で参照する必要があります。
comment プロパティの形式は、以下のとおりです。
comment('cmd[;[prohibited‑values][;permitted‑values]]')
prohibited 値および permitted 値のリストは省略できるため、comment プロパティの値は以下のように簡略化することもできます。
newres SUDO NET comment('net use')
このコマンドに指定されている簡略化された値は、sesudoNET コマンドで「net use」コマンドを実行することを表します。 特定のスクリプト パラメータ値が禁止されていないため、すべての値が許可されます。
ワイルドカードと強力な変数を使用すると、prohibited パラメータおよび permitted パラメータを柔軟に指定できるようになります。 使用できるワイルドカードは、Windows の標準的なワイルドカードです。 禁止するパラメータおよび許可するパラメータには、以下の変数を指定することもできます。
|
変数 |
説明 |
|---|---|
|
$A |
英字 |
|
$G |
既存の CA Access Control グループ名 |
|
$H |
(UNIX のみ)ユーザのホーム ディレクトリで始まるパラメータ |
|
$N |
数値 |
|
$O |
sesudo を実行するユーザの CA Access Control での名前 |
|
$U |
既存の CA Access Control ユーザ名 |
|
$e |
空のエントリ。 ルールに対してパラメータが指定されていない SUDO コマンドを指定する場合に使用します。 |
|
$f |
既存のファイル名 |
|
$g |
既存の Windows グループ名 |
|
$h |
既存のホスト名 |
|
$r |
Windows 読み取りアクセス権がある既存のファイル |
|
$u |
既存の Windows ユーザ名 |
|
$w |
Windows 書き込みアクセス権がある既存のファイル |
|
$x |
Windows 実行アクセス権がある既存のファイル |
prohibited パラメータ値のリストをスクリプトに追加する場合は、以下のようにします。
newres SUDO scriptname comment('cmd;-start')
ここで、cmd はユーザのスクリプトを表します。
また、パラメータ値を許可せず、すべてのパラメータをデフォルトに設定する場合は、SUDO レコードを以下のように定義します。
newres SUDO scriptname comment('cmd;*')
newres SUDO scriptname comment('cmd;-start -stop')
newres SUDO scriptname comment('cmd;-start -stop | $u')
指定したパラメータよりスクリプトのパラメータが多い場合は、指定した最後の prohibited パラメータのセットが、残りすべてのパラメータに適用されます。
permitted パラメータ値のリストをスクリプトに追加する場合は、以下の操作を行います。
つまり、prohibited リストにあるパラメータ値は、permitted リストにも指定されていても、permitted にはなりません。
newres SUDO scriptname comment('cmd;;NAME')
たとえば、2 つのパラメータがあるとします。最初のパラメータには Windows のユーザ名にしてはならない数字を指定し、2 番目のパラメータには Windows のグループ名にしてはならない英字を指定する必要がある場合は、以下のコマンドを入力します。
newres SUDO scriptname comment('cmd;$u | $g ;$N | $A')
スクリプトのパラメータが指定したパラメータより多い場合は、指定した最後の 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 ユーティリティでは、ユーザが入力した各パラメータを以下の方法でチェックします。
すべてのパラメータが permitted パラメータと一致し、prohibited パラメータと一致するパラメータが存在しない場合、sesudo はコマンドを実行します。
例: ユーザに net send の実行を許可するタスクの委任をセットアップする
以下の手順では、ユーザ Takashi に net send コマンドの実行を許可して、net start コマンドの実行を許可しない方法を示します。
[権限および委任]メニュー オプションが左側に表示されます。
[タスク委任]ページが表示されます。
[タスクの作成]ページが表示されます。
|
フィールド |
値 |
|---|---|
|
名前 |
NET |
|
データ |
net;start;send * |
|
所有者 |
nobody |
|
デフォルト アクセス |
なし(オプションの選択なし) |
|
許可されたアクセサ |
ユーザ: Takashi 許可: 実行 |
[保存]をクリックします。
新しいタスクの委任(SUDO)レコードが作成されます。
sesudo -do NET start
以下のメッセージが表示されます。
sesudo: 'start' をパラメータ番号 1 として使用することは許可されていません。
注: net start は prohibited 値として定義されたので、実行されません。
sesudo -do NET send comp message
このコマンドは実行されます。
例: 対話式アプリケーションを使用して、権限を必要とする操作を実行する権限をユーザに付与する
以下の例で示すように、ユーザは任意のスナップイン MSC モジュールを使用して、高い権限を必要とする操作を実行できます。
[権限および委任]メニュー オプションが左側に表示されます。
[タスク委任]ページが表示されます。
[タスクの作成]ページが表示されます。
|
フィールド |
値 |
|---|---|
|
名前 |
サービス |
|
データ |
c:¥winnt¥system32¥mmc.exe |
|
所有者 |
nobody |
|
オプション |
対話式(オプションの選択あり) |
|
デフォルト アクセス |
なし(オプションの選択なし) |
|
許可されたアクセサ |
ユーザ: Tori 許可: 実行 |
[保存]をクリックします。
新しいタスクの委任(SUDO)レコードが作成されます。 この[対話式]オプションは、サービスが開始されている状態のときに、ログインしたすべてのユーザが使用できるデスクトップ ユーザ インターフェースを提供します。 このインターフェースは、サービスが LocalSystem アカウントとして実行されている場合にのみ使用可能です。
sesudo -do services
| Copyright © 2011 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |