2

Linuxプロセスを特定のディレクトリにサンドボックス化し、このプロセスにこのディレクトリへの排他的rwアクセスを与える方法はありますか?たとえば、一時的な作業ディレクトリを作成し、その機能をあまり制限せずに、このディレクトリにのみ書き込むことができるように、Pythonまたは別のスクリプトツールなどを起動します。また、このプロセスのみがこのディレクトリからの読み取りにアクセスできます(もちろんスーパーユーザーを除く)。

基本的にユーザーが任意のコードを実行できるWebサービスをサンドボックス化するためにこれが必要です。現在、ソフトウェア自体で認証を行っていますが、最終的にはすべてのプロセスが1つの同じLinuxユーザーとして実行されます。ユーザーがシステムに害を及ぼすことはないが、Webサービスの他のユーザーから保護されているファイルを読み書きするための一時的なプライベート作業ディレクトリを持っている方法が必要になります。

4

4 に答える 4

0

機能を制限しすぎずに、このディレクトリにのみ書き込むことができるようにします。

うわー、これはほとんど魔法のように聞こえます。プログラミングの問題はほとんどありません。

于 2010-10-26T00:31:34.687 に答える
0

Linux版のFreeBSDJailのようなもの、または少なくとも非常に似たものが必要なようです。このブログ投稿には、少なくとも同じ名前のツールの説明が含まれています。

于 2010-10-26T01:00:42.403 に答える
0

ファイルのアクセス許可は、プロセスではなく所有者/グループに基づいているため、同じユーザーが実行する複数のプログラムが所有するディレクトリにアクセスできるようになります。ただし、実行する前にプロセスごとに一時ディレクトリを作成してからchroot()すると、プロセスはchrootjailから抜け出して他のディレクトリにアクセスできなくなります。

基本的な概念は、プロセスに関する限り、一時ディレクトリがディレクトリツリーの最上位になるというものです。プロセスは、それより上にあるものを認識しておらず、変更することもできません。それ以外の場合は、サンドボックス内の心ゆくまで何でも読み取り/書き込み作成/削除できます。

例えば:

/rundir
/rundir/temp1  <-- process 1 chroot jailed here, can't go above
/rundir/temp2  <-- process 2 chroot jailed here, can't go above

「man8chroot」も参照してください。

于 2010-10-26T02:51:06.707 に答える
0

Grsecurityのようなカーネルパッチ(他にもその仕事をすることができると思いますが、SELinuxとAppArmorを探してください)を使用して、特定のプロセスにRBAC(ロールベースのアクセス制御)を適用できます。

使用シナリオを考えると、セキュリティが強化されたカーネルを使用する必要があると思います。

于 2010-10-26T06:44:24.430 に答える