バイナリとその依存関係をコピーした後、「chroot」bashは機能しません。

バイナリとその依存関係をコピーした後、「chroot」bashは機能しません。

既存の質問と回答を見ましたが、そのどれも私のケースには適していませんでした。だから新しい質問をします。

オペレーティングシステム:Debian

私のステップは次のとおりです。

まず、以下をコピーしてください/bin/bash

$ sudo mkdir -p /mychroot/bin
$ sudo cp /bin/bash /mychroot/bin/

次に、依存関係を探します。

$ sudo ldd /bin/bash
    linux-vdso.so.1 (0x00007ffd807ec000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f00c86fa000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f00c86f4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f00c8520000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f00c8869000)

動的にリンクされた依存関係をコピーします。間違ったディレクトリにコピーした場合は、次のすべてを試してください。

$ sudo mkdir -p /mychroot/lib/x86_64-linux-gnu/
$ sudo ldd /bin/bash | grep "=>" | awk '{print $3}' | xargs -I '{}' sudo cp -v '{}' /mychroot/lib/x86_64-linux-gnu/
'/lib/x86_64-linux-gnu/libtinfo.so.6' -> '/mychroot/lib/x86_64-linux-gnu/libtinfo.so.6'
'/lib/x86_64-linux-gnu/libdl.so.2' -> '/mychroot/lib/x86_64-linux-gnu/libdl.so.2'
'/lib/x86_64-linux-gnu/libc.so.6' -> '/mychroot/lib/x86_64-linux-gnu/libc.so.6'
# copy deps into lib64 (just in case)
$ sudo mkdir -p /mychroot/lib64
$ sudo ldd /bin/bash | grep "=>" | awk '{print $3}' | xargs -I '{}' sudo cp -v '{}' /mychroot/lib64
'/lib/x86_64-linux-gnu/libtinfo.so.6' -> '/mychroot/lib64/libtinfo.so.6'
'/lib/x86_64-linux-gnu/libdl.so.2' -> '/mychroot/lib64/libdl.so.2'
'/lib/x86_64-linux-gnu/libc.so.6' -> '/mychroot/lib64/libc.so.6'
# copy deps into lib (just in case)
$ sudo mkdir -p /mychroot/lib
$ sudo ldd /bin/bash | grep "=>" | awk '{print $3}' | xargs -I '{}' sudo cp -v '{}' /mychroot/lib
'/lib/x86_64-linux-gnu/libtinfo.so.6' -> '/mychroot/lib/libtinfo.so.6'
'/lib/x86_64-linux-gnu/libdl.so.2' -> '/mychroot/lib/libdl.so.2'
'/lib/x86_64-linux-gnu/libc.so.6' -> '/mychroot/lib/libc.so.6'

ランニングchroot:

$ sudo chroot /mychroot
chroot: failed to run command ‘/bin/bash’: No such file or directory

どんなアイデアがありますか?


更新:今、すべてのファイルをコピーする必要があることに気づきました。テストしようとしましたが、sudo cp -r /lib /lib64 /mychrootまだ機能していません。

ベストアンサー1

/lib64/ld-linux-x86-64.so.2図書館が消えたことがわかりました。これらの共有ライブラリも正しいディレクトリに配置する必要があります。

ついに私に役立つのは次のとおりです(chroot環境を作成した場所は少し変更されましたが、非常に簡単です)。

$ mkdir -p ~/mychroot/{bin,lib,lib64}

$ cp /bin/bash ~/mychroot/bin/bash

$ ldd /bin/bash
linux-vdso.so.1
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2

$ cp --parent {/lib/x86_64-linux-gnu/libtinfo.so.6,/lib/x86_64-linux-gnu/libdl.so.2,/lib/x86_64-linux-gnu/libc.so.6,/lib64/ld-linux-x86-64.so.2} ~/mychroot

$ sudo chroot ~/mychroot /bin/bash

おすすめ記事