前のトピック: ユーザのシステム su ユーティリティ実行の阻止次のトピック: SUDOレコードの定義


Surrogate DO 機能のセットアップ

多くの場合、オペレータ、プロダクション担当者、およびエンド ユーザは、スーパーユーザのみが実行できるタスクを実行する必要があります。 このタスクには、以下のタスクが含まれます。

これまでの方法では、これらのタスクを実行する必要があるすべてのユーザに、スーパーユーザのパスワードを知らせていました。これはサイトのセキュリティを脅かすことにつながります。 このため、安全な代替策としてパスワードの公開を禁止すると、システム管理者はユーザからの正当な要求によってさまざまなルーチン タスクを実行しなければならず、システム管理者の負荷が大きくなります。

Surrogate DO(sesudo)ユーティリティは、このジレンマを解消します。 このユーティリティは、SUDO クラスに定義されているアクションの実行をユーザに許可します。SUDO クラスの各レコードにはスクリプトが保存されていて、スクリプトを実行できるユーザとグループが指定されています。それらのユーザやグループに、目的に応じて必要な許可が与えられます。

たとえば、ユーザが root ユーザであるかのようにCD‑ROMをマウントする SUDO リソースを定義するには、以下のコマンドを入力します。

newres SUDO MountCd data('mount /usr/dev/cdrom /cdr') targuid(root)

この newres コマンドによって、一部のユーザだけが root の実行権限を使用できる保護されたアクションとして、MountCd が定義されます。 この例では、root がターゲット ユーザの ID であることを明確にするために、targuid(root) パラメータを使用しています。このターゲット ユーザには、root の実行権限が与えられています。 実際には、SUDO レコードのデフォルトのターゲット ID は root であるため、この例で指定しているパラメータは不要になります。

重要: data プロパティには、完全な絶対パス名を使用してください。 相対パス名を使用すると、保護されていないディレクトリに仕掛けられたトロイの木馬プログラムが、誤って実行される可能性があるからです。

さらに、authorize コマンドを使用して、MountCd アクションを実行する権限をユーザに与えることもできます。 たとえば、ユーザoperator1にCD‑ROMのマウントを許可するには、以下のコマンドを入力します。

authorize SUDO MountCd uid(operator1)

また、authorize コマンドを使用して、保護されたアクションの実行をユーザに対して明示的に禁止することもできます。 たとえば、ユーザoperator2によるCD‑ROMのマウントを禁止するには、次のコマンドを入力します。

authorize SUDO MountCd uid(operator2) access(None)

sesudo ユーティリティを実行すると、保護されたアクションが実行されます。 たとえば、ユーザoperator1が以下のコマンドを使用して CD‑ROM をマウントするとします。

sesudo MountCd

この sesudo ユーティリティは、最初に SUDO アクションの実行権限がユーザにあるかどうかをチェックし、そのユーザにリソースの権限がある場合は、そのリソースに定義されているコマンド スクリプトを実行します。 この例に示した sesudo は、MountCd アクションの実行権限が operator1 にあるかどうかをチェックした後に、mount /usr/dev/cdrom /cdr コマンドを起動します。

実行前に sesudo でユーザのパスワードを要求する場合は、PASSWORD パラメータを指定したコマンドを使用して、SUDO レコードを定義または変更します。 このパラメータを使用しない場合、ユーザがコマンドを実行できるかどうかは、SUDO オブジェクトのアクセス ルールに基づいて決定されます。

注: sesudo ユーティリティ、および SUDO レコードの管理(editres コマンド)の詳細については、「リファレンス ガイド」を参照してください。