以下のリンク記事では、「chroot」/ tmpディレクトリを作成する方法について説明します。私は彼らが何をしているのか少し混乱しています。次のコマンドの機能を説明できる人はいますか?
1. # mkdir -p /root/chroot /root/tmp
2. # mount --bind / /root/chroot
3. # mount --bind /root/tmp /root/chroot/tmp
4. # chroot /root/chroot
最初のステップ、なぜ作ったのですか?/root/tmpまさか/root/chroot/tmp?
最初のインストールコマンドは2番目のインストールコマンドに影響しますか? 2番目のステップでは、新しいディレクトリをバインドします。/root/chrootルートディレクトリに。これは第三段階で/root/tmp実際に以下を指す/root/chroot/root/tmp?どこ/root/chroot/tmpから?これが私を混乱させる部分です。
これの論理は何ですか?
ベストアンサー1
mkdir -p /root/chroot /root/tmp
chroot環境用のディレクトリを作成します。/root/chroot
chroot 環境のルートディレクトリになります。 chroot 環境/root/tmp
として機能するディレクトリです。/tmp
mount --bind / /root/chroot
/
これにより、ディレクトリが表示されます/root/chroot
。ディレクトリを/
ミラーディレクトリとして扱います/root/chroot
(実際にはミラーではありませんが、そのディレクトリへのポインタです/
)。
mount --bind /root/tmp /root/chroot/tmp
これにより、chroot環境のディレクトリを介してカスタム/root/tmp
ディレクトリにアクセスできます。/tmp
これにより、chroot環境のディレクトリがシステム/tmp
の/tmp
。/tmp
/tmp
chroot /root/chroot
ここでchroot環境を入力してください。
今あなたの質問:
最初のインストールコマンドは2番目のインストールコマンドに影響しますか?
はい。ディレクトリ
/root/chroot
をバインドする前に、chroot環境のルートディレクトリ()をバインドマウントする必要があります/tmp
。にバインドされるまでは存在しません/root/chroot/tmp
。/
/root/chroot
2番目のステップでは、新しいディレクトリを
/root/chroot
ルートディレクトリにバインドします。これは、ステップ3が/root/tmp
実際にそれを指すことを意味しますか/root/chroot/root/tmp
?はい。のすべてのコンテンツ
/
を経由してアクセスできます/root/chroot
。それはどこから出たの
/root/chroot/tmp
?/root/chroot/tmp
ステップ2でバインドした/
後は存在します。/root/chroot