chrootのマウントポイント

chrootのマウントポイント

にいくつかのデバイス(たとえば/dev/sda1)が取り付けられています/home/user1。私も私の下に完全なLinuxシステムがあり、/tmp/chrootディレクトリ/tmp/chroot/homeにはuser2

、mount、およびそこ(または)chrootでコマンドを実行すると、まだmountを見ることができ、ディレクトリはもはや(chrootに)存在しません。/tmp/chroot/dev/sys/procmountcat /proc/mounts/dev/sda1/home/user1/home/user1

jchroot代わりにchroot(同様のインターフェースを持っていますが、新しいマウントネームスペースと新しいPIDネームスペースを生成するプログラム)を試しましたが、chroot結果は同じです。

これは正常な行動ですか? chrootの外側のマウントポイントに関する情報にアクセスできますが、奇妙に聞こえます。
それらを消す方法はありますか/proc/mounts

ベストアンサー1

これはchrootで予想される動作です。 chrootは、実際にプロセスに表示されているファイルシステムのルートディレクトリ "/"を起動時に "/"としてマウントされたディレクトリとは異なるディレクトリに変更します。プロセスはまだカーネル自体に対して同じグローバルアクセス権を持っていますが、「/」ファイルシステムへのアクセス権はありません。

カーネルは、chrootプロセスがchrootが「本当」であると信じるようにするために/ procまたはデバイスを修理またはエミュレートしません。これに対する副作用として、chrootからスーパーユーザーとして実行されるすべてのプロセスは、さまざまな方法で簡単にchrootから外れる可能性があります(例:/ devマウントと実際のルートを持つ/ dev / sdaXマウントまたはmknodのみマウント)。新しいデバイスが入り、それを使用してマウントされます。カーネルは関係ありません。 chrootプロセスはデバイスドライバをインストールし、必要なものをすべて実行することもできます。

プロセスが現在実行中のシステムとは異なるシステムで実行されていると思うように「だまされたり」セキュリティ層を提供したい場合は、chrootはおそらく間違った技術である可能性があるため、ユーザーモードのLinuxを調べることをお勧めします。またはおそらくLinuxコンテナ

おすすめ記事