2012-04-05 16 views
0

私は、ユーザーが自分で登録してJavaおよびC++プログラムをアカウントに保存できるWebアプリケーションを用意しています。 プログラムがtmpディレクトリに保存されているような、 /tmpの -user1 --program1 --program2 -user2 --program1 --program2サーバー上のユーザー用に仮想環境を作成する方法

だから、すべてのユーザーフォルダが同じ "TMP" でありますディレクトリ。 ユーザーが他のユーザーのファイルにアクセスできないようにすることで、どのようにセキュリティを証明できるかを知りたい。ユーザーは、自分のフォルダ内にあるJavaまたはC++プログラムを実行して、サーバー上のファイルを読み取ることができます。これを防ぐ方法は? 私はこのことについて初めてです。私はこれについてどうやって行くのか分かりません。

サーバーはLinuxサーバーで、プロジェクトはDjangoを使用したPythonで動作します。あなたは、各プロセスは、システムの見るものを隔てるものが必要事前

+0

各ユーザーごとに個別のtmpディレクトリを作成し、環境変数TMPDIRを更新します。 – pylover

+0

私は、特にJavaやC++プログラムの実行中にセキュリティに完全に関連する問題を解決するとは思わない。 ユーザーは、ディレクトリ外のファイルを簡単にスキャンすることができます。 – rockvilla

答えて

1

ありがとうございます。 FreeBSDを使用している場合は、Jailsシステムが最適なソリューションになります。

Linuxの代わりに、Linux vserverインスタンスを使用するか、またはXenのようなハードウェア仮想化環境を設定することができます。

これらは両方とも、基本的に特定のディレクトリをルートとして使用する仮想サーバーのインスタンスを実行できる仮想化ソリューションです。プロセスは、ホストシステムと同じカーネルで実行されますが、システムの他の部分から分離されています。ネットワークスタックとプロセスツリーをさらに分離して、 "chroot"のように考えてください。新しい刑務所や仮想サーバーを設定したり破棄したりする作業は非常に高速になります。

可能であれば、FreeBSDに切り替えることをお勧めします。 Jailsは、Linuxの(現在は減少している)vserverソリューションよりはるかに活発な開発とサポートコミュニティを楽しんでいます。

関連する問題