前のトピック: 別のユーザとしての実行の有効化

次のトピック: SUDO レコードの定義(タスクの委任)

Surrogate DO 機能のセットアップ

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

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

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

たとえば、ユーザがシステム ユーザであるかのように、「印刷スプーラ」サービスを起動する SUDO リソースを定義するには、以下の selang コマンドを入力します。

newres SUDO StartSpooler data("net start spooler")

この newres コマンドによって、一部のユーザだけが実行のシステム権限を使用できる保護されたアクションとして、StartSpooler が定義されます。

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

さらに、authorize コマンドを使用して、StartSpooler アクションを実行する権限をユーザに与えることもできます。 たとえば、ユーザ operator1 に「印刷スプーラ」サービスの起動を許可するには、以下のコマンドを入力します。

authorize SUDO StartSpooler uid(operator1)

また、authorize コマンドを使用して、保護されたアクションの実行をユーザに対して明示的に禁止することもできます。 たとえば、ユーザ operator2 に「印刷スプーラ」サービスの起動を許可しないようにするには、以下のコマンドを入力します。

authorize SUDO StartSpooler uid(operator2) access(None)

sesudo ユーティリティを実行すると、保護されたアクションが実行されます。 たとえば、ユーザ operator1 が「印刷スプーラ」サービスを起動するには、以下のコマンドを入力します。

sesudo -do StartSpooler

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

注: sesudo ユーティリティの詳細については、「リファレンス ガイド」を参照してください。