在chroot监狱中提供/ bin和/ lib


11

我需要能够在chroot监狱内提供/ bin和/ lib目录,以便程序可以正确地动态链接。

有没有一种方法可以不将/ bin和/ lib目录复制到chroot监狱?

我已经尝试过符号链接,但是它们无法在chroot监狱内部工作,并且无法对目录进行硬链接。

Answers:


14

您可以用来mount在监狱中重新挂载所需的目录:

# mount --bind /bin /chroot/bin
# mount --bind /lib /chroot/lib
# chroot /chroot

适用于/etc/fstab

/bin /chroot/bin none bind
/lib /chroot/lib none bind

干杯!


2
非常感谢。我越玩Linux,它就会变得越来越好:p
匿名胆小鬼

我很高兴一切顺利!干杯!
jgr 2010年

3

如果您不想按照jgr的说明挂载目录,则可以cp用来递归复制目录并为所有文件创建硬链接:

cp -alf /bin /chroot/bin
cp -alf /lib /chroot/lib
chroot /chroot

这样,您的chroot /bin/lib可以具有与主目录稍有不同的结构/内容。


1
好主意,但是如果/ chroot在其他设备上,则将无法使用。您无法跨设备进行硬链接。
AllenKll

1
#!/bin/bash

copy_file_and_dependencies() {
    PROGRAM="$1"
    DEPENDENCIES="$(ldd "$PROGRAM" | awk '{ print $3 }' | grep -v '(' | grep -v 'not a dynamic executable')"

    mkdir -p "${JAIL}$(dirname $PROGRAM)"
    cp -Lv "$PROGRAM" "${JAIL}${PROGRAM}"

    for f in $DEPENDENCIES; do
        mkdir -p "${JAIL}$(dirname $f)"
        cp -Lv "$f" "${JAIL}${f}"
    done
}

export -f copy_file_and_dependencies

copy_file_and_dependencies /etc/ld.so.cache
copy_file_and_dependencies /bin/sh
# ...

1
该问题的意图似乎是提供对现有文件的访问权限,而不是将其复制到chroot中。
psusi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.