chroot環境ではリダイレクトを実行できません。

chroot環境ではリダイレクトを実行できません。

私は完全に動作するdebootstrap-ed arm chroot環境を設定しました。chrootその中でコマンドなどを実行できます。

私はカスタムchroot環境用のスクリプトを作成していますが、それで問題が発生しています。

たとえば、

chroot $target_dir echo this is a test > /tmp/test

この例では、私が得た出力がchrootedではなくホスト環境に書き込まれる理由を説明できる人はいますか?

言い換えれば、私はfeを実行することができます

echo this is a test > $target_dir/tmp/test

しかし、chrooted実行が「失敗」する理由を知りたいです。

編集する:

これはまた働きます:

chroot $target_dir /bin/bash -c "echo test > /tmp/test"

ベストアンサー1

実行時:

chroot $target_dir echo this is a test > /tmp/test

これは> /tmp/testあなたが書いたように "chroot"コマンドで起こります:

> /tmp/test chroot $target_dir echo this is a test

chroot コマンド内でリダイレクトを発生させるには、1 つの方法があります。

chroot $target_dir sh -c 'echo this is a test > /tmp/test'

sh...これは、echoが正しいリダイレクトディレクトリを表示できるようにchrootに保存されるためです。

おすすめ記事