Ubuntu 14.04システムにchroot刑務所を作成しました。シュルートそしてブート防止プログラム。
では、基本環境とchrootを切り替えるシェルスクリプトを作成したいと思います。
シェルスクリプトから直接コマンドを作成すると、chrootに切り替えると中断されます。
たとえば、
...
sudo chroot /JAIL #folder to chroot
echo "Chrooted now"
...
chrootフォルダ/ JAILに切り替えましたが、エコーで出力が得られません。この出力は、chrootからホストにシャットダウンしたときにのみ印刷されます。私はこれがchroot刑務所に入るときにユーザーを変更することに関連しているかもしれないと思いました。
だから私はこの質問で言及された解決策を試しました。単一の端末でユーザーをすばやく切り替えるには? 私も読んだここのドキュメントしかし、それらを操作することはできませんでした。
理想的には、次のようなフローを持つシェルスクリプトが必要です。
- chroot 投獄
- そこで何かをしてください。
- ホストに戻る
- ここでも何をしてください
- chrootなどに戻ります。
ベストアンサー1
終了echo
後に実行される理由は、sudo
ユーザーの変更とは何の関係もありません。
スクリプトを単純化してみましょう。
...
cat
echo "After cat"
...
このコマンドは、echo
作成する他のすべてのコマンドシーケンスと同様に、完了すると実行されます。cat
chroot内で特定のコマンドを実行するには、そのコマンドをchrootに引数として渡す必要があります。
/bin/bash
ログインシェルがある場合は、次のコマンドを実行します。
chroot /dir
等しい
chroot /dir /bin/bash -i
これは、対話型シェルが起動することを意味します。 chrootからアクセスできるシェルスクリプトを作成するか、コマンドラインでそれを指定して特定のコマンドを実行できます。
chroot /dir /path/to/script
chroot /dir /bin/bash -c 'some commands; more commands'
chroot
スクリプトまたはコマンドラインはバックグラウンドでプロセスを開始できますが、プログラムは常にコマンドが完了するのを待ちます。