当 lib64 指向 lib 时 ldd 和 chroot 会被监禁吗?

当 lib64 指向 lib 时 ldd 和 chroot 会被监禁吗?

我正在跟进本教程在第 2 步,他们查找一堆 bash 的依赖库。 (我假设您需要对任何您希望通过 ssh 登录的 chroot 监狱用户执行此操作的命令执行此操作)教程依赖项全部位于 中/lib64,但在我的中,有一个位于那里,其余的都是 simlinks/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)

我该如何处理 simlinks,只需将它们复制到 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并且有一个符号链接,您需要再次复制它。

最后,您需要复制实际的库;通常,有实际的库和嵌入在二进制文件中的名称的符号链接,并且您将需要两者。

相关内容