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