1

この投稿の範囲を超えた理由で、コンピューター言語のベンチマークゲームと同様の外部(ユーザーが送信した)コードを実行したいと思います。明らかに、これは制限された環境で行う必要があります。これが私の制限要件です:

  1. 現在の作業ディレクトリに対してのみ読み取り/書き込みが可能です(大きなtempdirになります)
  2. 外部アクセスなし(インターネットなど)

私がおそらく気にしない他の何か(例えば、プロセッサ/メモリ使用量など)。

私自身、いくつかの制限があります。標準の*nix機能(具体的にはRHEL 5.x)を使用するソリューションが推奨されます。これにより、バックエンドにクラスターを使用できるようになります。また、そこにソフトウェアをインストールするのは難しいので、基本ディストリビューションの何かが最適です。

さて、質問:

  1. これは、外部でコンパイルされたバイナリでも実行できますか?それは可能かもしれないが、それはただ絶望的かもしれないようにも思えます。
  2. コード自体を強制的に送信し、自分でコンパイルするとどうなるでしょうか。それは問題をより簡単にしますか、それとも難しくしますか?
  3. ホームディレクトリの保護をあきらめて、VM /ロールバックを使用する必要がありますか?外部通信をブロックするのはどうですか(VMは通常ブリッジLAN接続を介して通信されませんか?)
  4. 私が逃した何か?

おそらく有用なアイデア:

  1. rssh。コンパイルされたコードには役立ちませんが
  2. コードの終了後にロールバックを使用してVMを使用する(ローカルブリッジはあるがWANブリッジがないようにネットワークを構成できますか?)。クラスタでは動作しません。
4

2 に答える 2

1

VM と特殊な SELinux コンテキストの両方を調べて評価します。

于 2009-12-07T20:30:53.710 に答える
0

ネットワークなどへのアクセスを許可するsyscallへのアクセスを防ぐことができないため、単純なファイルシステム保護では必要なことを実行できないと思います。おそらくAppArmorを使用して実行できます。しかし必要です。これはカーネルを使用し、外部バイナリを仮想化します。

于 2009-12-07T19:27:02.313 に答える