SUDO クラスのレコードには、コマンド スクリプトが格納されています。ユーザは、借用した権限でそのスクリプトを実行できます。 権限を利用できるかどうかは、スクリプトを実行する sesudo コマンドと SUDO レコードの両方で厳密に制御されます。
SUDO レコードでは、comment プロパティを特別な目的に使用します。通常、このような comment プロパティを data プロパティといいます。
data プロパティの値は、コマンド スクリプトです。必要に応じて、禁止(prohibited)または許可(permitted)するスクリプト パラメータ値を 1 つ以上追加します。 data プロパティ値全体は一重引用符で囲む必要があります。トロイの木馬の侵入を防ぐために、実行可能ファイルは完全パス名で参照する必要があります。
data プロパティの形式は、以下のとおりです。
data('cmd[;[prohibited‑values][;permitted‑values]]')
prohibited および permitted の値のリストは省略できるため、data プロパティの値は以下のような簡単な値にすることもできます。
newres SUDO MountCd data('mount /dev/cdrom /cdr')
この例では、コマンドに指定されている簡単な値によって、sesudo MountCd コマンドで mount /dev/cdrom /cdr というスクリプトが実行されます。 特定のスクリプト パラメータ値が禁止されていないため、すべての値が許可されます。
ワイルドカードと強力な変数を使用すると、prohibited パラメータおよび permitted パラメータを柔軟に指定できるようになります。 使用できるワイルドカードは、UNIX の標準的なワイルドカードです。 使用できる変数は以下のとおりです。
|
変数 |
説明 |
|---|---|
|
$A |
英字の値 |
|
$G |
既存の CA ControlMinder グループ名 |
|
$H |
ユーザのホーム パス パターン |
|
$N |
数値 |
|
$O |
実行するユーザの名前 |
|
$U |
既存の CA ControlMinder ユーザ名 |
|
$e |
パラメータが指定されていない SUDO コマンド |
|
$f |
既存のファイル名 |
|
$g |
既存の UNIX グループ名 |
|
$h |
既存のホスト名 |
|
$r |
UNIX の読み取り許可が付与された既存の UNIX ファイル名 |
|
$u |
既存の UNIX ユーザ名 |
|
$w |
UNIX の書き込み許可が付与された既存の UNIX ファイル名 |
|
$x |
UNIX の実行許可が付与された既存の UNIX ファイル名 |
prohibited パラメータ値のリストをスクリプトに追加する場合は、以下のようにします。
newres SUDO scriptname data('cmd;‑9')
ここで、cmd はユーザのスクリプトを表します。
また、パラメータ値を許可せず、すべてのパラメータをデフォルトに設定する場合は、SUDO レコードを以下のように定義します。
newres SUDO scriptname data('cmd;*')
newres SUDO scriptname data('cmd;‑9 ‑HUP')
newres SUDO scriptname data(‘cmd;‑9 ‑HUP | $u’)
指定したパラメータよりスクリプトのパラメータが多い場合は、指定した最後の prohibited パラメータのセットが、残りすべてのパラメータに適用されます。
permitted パラメータ値のリストをスクリプトに追加する場合は、以下の操作を行います。
newres SUDO scriptname data('cmd;;NAME')
たとえば、2 つのパラメータがあるとします。最初のパラメータには UNIX のユーザ名でない数字を指定し、2 番目のパラメータには UNIX のグループ名でない英字を指定する必要がある場合は、以下のコマンドを入力します。
newres SUDO scriptname data('cmd; $u | $g ; $N | $A')
スクリプトのパラメータが指定したパラメータより多い場合は、指定した最後の permitted パラメータのセットが、残りすべてのパラメータに適用されます。
したがって、data プロパティ全体の形式は、スクリプト、パラメータごとの prohibited 値、パラメータごとの permitted 値の順になります。
data('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')
|
Copyright © 2013 CA.
All rights reserved.
|
|