2

C でユーティリティをサンドボックス化しようとしています。以下の手順に従いました。

  1. file,directory, sharpointそのユーティリティのサンドボックス リソースをフォルダの下に作成しました/sandbox/myutil
  2. 、と呼ばれる「c」コードchdir("/sandbox/myutil")からchroot("/")
  3. ユーティリティの実行可能ファイルが で入手可能で/sandbox/myutil/bin/util.binあり、すべての依存ファイルが で入手可能であることを確認し/sandbox/myutilました。
  4. ユーティリティと呼ばbin/util.binれるexecve("/bin/util.bin",arg, env);

ただし、/bin/util.bin期待どおりに実行されていないため、プロセスはシグナル 18 を受信し、コード 13「EACCESS」を返します。

ただし、 を呼び出す代わりにchroot()chdir()Cexecve()コードchroot /sandbox/myutil /bin/util.binから、シェルから実行されるコマンドを使用すると、正常に動作します。

カーネル 2.6.17 を使用しています。

4

0 に答える 0