Linux で chroot jail を作成していますが、ls/cd/gcc/g++ などのシステム ファイルにアクセスできません。chroot jail にコピーする必要がある必要な libs/bin/systme ファイルは何ですか?
質問する
2444 次
2 に答える
0
ls/cd/gcc/g++ のような実行可能ファイルは、共有ライブラリに依存します (静的にビルドしない限り)。したがって、共有ライブラリの依存関係をすべて chroot 監獄の適切な場所にコピーする必要があります。また、それらの共有依存関係が何であるかを見つける必要があります。それを見つけるには、"ldd" の助けが必要です。
gcc が持つ共有依存関係を確認するには、次の手順を実行します。
ldd /usr/bin/gcc
私のシステムでは、次の出力が表示されます。
linux-vdso.so.1 => (0x00007fffd9bff000)
libc.so.6 => /lib64/libc.so.6 (0x00000030c9c00000)
/lib64/ld-linux-x86-64.so.2 (0x00000030c9800000)
そのため、gcc には標準の c ライブラリ libc.so の依存関係があり、ld (実行可能ローダー) も必要です。これらの共有ライブラリを適切な場所 (つまり、/lib64 の下の libc) に gcc と共に chroot 監獄に配置します。したがって、gcc を呼び出している間、gcc は必要なものをロードできます。
于 2013-08-12T04:19:13.383 に答える