web-dev-qa-db-ja.com

実行ノードでrootとして特定のジョブを実行するようにAGEに指示する方法はありますか?

タイトルはちょっとそれをすべて言います...

SGE/OGEを使用して、特定の機器で処理を実行する一連のワーカーノードにジョブを送信しています。この機器を操作するために作成されたプログラムとスクリプトは、rootとして実行することに依存しています。 SGEに、ユーザー、グループ、プロジェクトなどを考慮した方法でリソースの割り当てを処理させたいのですが、root権限で実行する実際のジョブも必要です。

gridengineでrootとしてプロローグスクリプトを実行するにはどうすればよいですか? 関連するものがあるかどうかを確認しましたが、SGEは特に「user @」のような仕様を提供しているようです。プロローグとエピローグの種類のアクション。ジョブ自体に同様の機能はありますか?

私はsu/Sudoアプローチを知っていますが、sudoersファイルがグローバルに管理されていないため、この環境では実際には機能しません(つまり、多くのユーザーのセット全体を/ etc/sudoersに追加する必要がありますマシン)。私は現在、setuidの種類のソリューションを検討していますが、SGEが特定のジョブ(または特定のキュー内のジョブ)を常に実行する必要があることを宣言する方法を提供する場合、それは間違いなく不要な種類の回避策になります。特定のユーザーの権利。

2
Rick Reynolds

Gridengineは、rootまたは他のユーザーとして実行するように特定のジョブを構成して実行する機能を提供していないようです。

これが実装されていることを確認する1つの方法は、別のキューを作成し、そのキューのシェルをrootとしてシェルを開始するコマンドに設定した場合です。次に、そのキューで他のジョブが実行されないように、そのキューに強制コンプレックスを作成する必要があります。また、実行するジョブもキューで実行します。その複合体を要求する必要があります。

1
Kamil Kisiel