私はフォローアップをしています。このチュートリアルステップ2では、いくつかのbash依存関係を見つけます。 (Sshを介してログインした刑務所ユーザーをchrootしたいコマンドに対してこれを行う必要があるとします。)チュートリアルの依存関係はすべてですが、/lib64
私のものには1つあり、残りはsimlinkです。/lib
root@dasHost:/# ldd /bin/bash
linux-vdso.so.1 (0x00007fffcee04000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fddf98f0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fddf96e0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fddf92e0000)
/lib64/ld-linux-x86-64.so.2 (0x00007fddfa000000)
Simlinkをどのように処理できますか? chrootの./libディレクトリにコピーし、通常どおりSimlinkに接続できますか?
ほとんどがソフトリンクのようです。
root@dashost:/# ls -la /lib/x86_64-linux-gnu/libtinfo.so.5
5629499534705713 lrwxrwxrwx 1 root root 15 May 23 2018 /lib/x86_64-linux-gnu/libtinfo.so.5 -> libtinfo.so.5.9
root@dasHost:/# ls -lia /lib/x86_64-linux-gnu/libtinfo.so.5
5629499534705713 lrwxrwxrwx 1 root root 15 May 23 2018 /lib/x86_64-linux-gnu/libtinfo.so.5 -> libtinfo.so.5.9
答え1
Debian または Ubuntu システムでは、共有ライブラリはマルチアーキテクチャと呼ばれるシステムを使用して保存されます。 / lib64ディレクトリは32ビットライブラリと64ビットライブラリのみをサポートするbiarchシステム用に設計されていますが、DebianとUbuntuは/lib/<triple>
この形式のディレクトリを使用してシステム自体でサポートされていないライブラリを含むすべてのアーキテクチャのライブラリをサポートします。
/lib64/ld-linux-x86-64.so.2
設定方法に関係なく、動的リンカーをコピーする必要があります。シンボリックリンクの場合は、/lib64
シンボリックリンクもコピーする必要があります。
/lib/<triple>
また、共有ライブラリがある場所なので、適切なコンテンツをコピーしたことを確認する必要があります。最新のシステムには実際にすでに存在し、/usr
シンボリックリンクがあるため、再度コピーする必要があります。
最後に、実際のライブラリをコピーする必要があります。通常、実際のライブラリとバイナリに含まれる名前へのシンボリックリンクがあり、両方が必要です。