2

Linuxでapparmorsetrlimitcap_set_rpocを使用してサンドボックス環境を作成し、匿名ユーザーが科学アプリケーションのコンテキストでサーバー上で基本的に任意のコードを実行できるようにします。サンドボックスで特に許可されていることの1つは、実行可能ファイルをフォークして呼び出すことによって新しいプロセスを開始することです(ただし、1人のユーザーによるプロセスの総数はによって制限されますRLIMIT_NPROC)。

一定の期間、たとえば1分が経過すると、システムはメインプロセスとすべての潜在的な子を強制終了します。私は現在、子を識別するためにプロセスグループIDに依存しています。ただし、理論的には、子プロセスがそのプロセスグループを変更するために呼び出すことができるため、メインプロセスIDsetpgidを呼び出したときに影響を受けなくなります(正しいですか?)。残念ながら、プロセスがを呼び出さないように設定できるkill(-1 * pid)Linuxはありません。capabilitysetpgid

プロセスとそのすべての(再帰的な)子を殺すための強力な方法は何でしょうか。これにより、子が虐殺を「逃れ」、孤立したプロセスとして続行することが非常に困難になります。

4

1 に答える 1

1

lxc (Linuxコンテナー)を使用して各プロセスツリーを分離する場合lxc-stopは、コンテナー内のすべてのプロセスを強制終了するために使用できます。lxcのマニュアルページの「コンテナの起動/停止」セクションを参照してください。

于 2012-11-07T01:53:35.723 に答える