0

基本的に、jail プロセス内でシェル コマンドを実行したいと考えています。以下のコードを (通常のユーザーと root ユーザーの両方として) 試してみると、出力が生成されませんでした

if(!(pid=fork)){
   chroot("./jail_folder");
   chdir("/");

   execl("/bin/ls","ls",NULL);
}

perror() 関数を試してみたところ、「そのようなファイルまたはディレクトリはありません」というエラーが表示されました。ジェイルされたプロセスでシェルコマンドを実行することは可能ですか? もしそうなら、どうすればいいですか?

4

1 に答える 1

1

はい、可能ですが、jail にアクセスできるようにする必要があります (通常、目的のプログラムとそのすべてのライブラリを jail にコピーすることを意味します。シンボリック リンクは機能しません。ハードリンクは問題ありません)。そうでなければ、プログラムを なし/binでディレクトリ ツリーの一部に限定すると、 にアクセスできなくなるのは驚くことではありません/bin/ls

于 2013-01-12T11:54:14.313 に答える