Proporcionando / bin y / lib dentro de una cárcel chroot


11

Necesito poder proporcionar los directorios / bin y / lib dentro de una cárcel chroot para que los programas puedan vincularse dinámicamente correctamente.

¿Hay alguna manera de lograr esto sin hacer una copia de los directorios / bin y / lib en la cárcel chroot?

He intentado enlaces simbólicos, y no funcionan desde dentro de las cárceles chroot, y los directorios no se pueden vincular.

Respuestas:


14

Puede usar mountpara volver a montar los directorios que necesita en su cárcel:

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

Para uso en /etc/fstab:

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

¡Salud!


2
Muchas gracias. Linux sigue mejorando cada vez que juego con él: p
cobarde anónimo

¡Me alegra que haya funcionado bien! ¡Salud!
jgr

3

Si no desea montar los directorios como dijo jgr, puede usarlos cppara copiar directorios recursivamente y crear enlaces duros para todos los archivos:

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

De esta manera de su jaula /biny /libpuede tener algo diferente estructura / contenido que los directorios principales.


1
Buena idea, pero si / chroot está en un dispositivo diferente, esto no funcionará. No se puede vincular a través de dispositivos.
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
La intención de la pregunta parece ser proporcionar acceso a los archivos existentes en lugar de copiarlos en el chroot.
psusi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.