chroot jail 안에 / bin 및 / lib 제공


11

프로그램이 동적으로 올바르게 링크 될 수 있도록 chroot jail 안에 / bin 및 / lib 디렉토리를 제공 할 수 있어야합니다.

/ bin 및 / lib 디렉토리를 chroot jail에 복사하지 않고이를 수행 할 수있는 방법이 있습니까?

심볼릭 링크를 시도했지만 chroot jails에서 작동하지 않으며 디렉토리를 하드 링크 할 수 없습니다.

답변:


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
고마워 리눅스는 내가 더 많이 플레이할수록 점점 더 좋아지고있다 : p
anonymous coward

잘 작동 했다니 다행입니다! 건배!
jgr

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.