0
  1. プロセスを刑務所に入れた後、刑務所の外にあるライブラリにchrootアクセスできます。libc.soなぜ、またはどうやって?

  2. 刑務所外のファイルを参照するソフトリンクがある場合、メインファイルにアクセスできますか?

  3. chrootマルチスレッドアプリケーションで使用できますか? または、1 つのスレッドからルート ディレクトリを変更すると、プロセス全体のルート ディレクトリが変更されますか?

  4. chrootこの関数は本当の安全な環境を提供しないと読みましたが、Linux で代替ソリューションはありますか?

4

1 に答える 1

1
  1. を呼び出す前に開いていた限り、chroot独自のバイナリのように開いたままです。ただし、特権操作であるため、それを呼び出すプロセスはおそらくIDを変更して実際のプロセスを実行し、chrootで利用できない限りchrootアクセスできません。libc.so
  2. ソフト リンクはプロセスの名前空間で解決されるため、chroot.
  3. よくわかりません(そうではないのではないかと思います)。特権操作であるため、マルチスレッド化されていない単純なラッパーで実行されますが、chroot 後にのみマルチスレッド アプリケーションを起動し、すべてのファイル ハンドルを閉じ、現在のディレクトリを chroot に変更し、特権を削除するため、通常は問題になりません。 .
  4. Chroot は安全ではありません。root は簡単に逃げることができます (たとえば、デバイスを再度マウントすることにより)。安全なプロセス分離を提供するLinux-Vserverlxc、およびOpenVZがあります。LXC はcgroups Linux 機能 (カーネル 2.6.29 以降) を使用しますが、他の 2 つはカーネルにパッチを適用する必要があるようです。1 つのアプリケーションを投獄する必要がある場合は、自分で cgroup をセットアップすることもできます。
于 2011-05-03T09:28:33.427 に答える