Fournir / bin et / lib dans une prison chroot

11

J'ai besoin de pouvoir fournir les répertoires / bin et / lib à l'intérieur d'une prison chroot afin que les programmes puissent se lier dynamiquement correctement.

Existe-t-il un moyen d'accomplir cela sans faire une copie des répertoires / bin et / lib dans la prison chroot?

J'ai essayé les liens symboliques, et ils ne fonctionnent pas à l'intérieur des prisons chroot, et les répertoires ne peuvent pas être liés en dur.

lâche anonyme
la source

Réponses:

14

Vous pouvez utiliser mountpour remonter les répertoires dont vous avez besoin dans votre prison:

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

Pour utilisation dans /etc/fstab:

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

À votre santé!

jgr
la source
2
Merci beaucoup. Linux ne cesse de s'améliorer de mieux en mieux avec moi: p
lâche anonyme
Je suis content que ça se soit bien passé! À votre santé!
2010
3

Si vous ne vouliez pas monter les répertoires comme l'a dit jgr, vous pouvez utiliser cppour copier récursivement des répertoires et créer des liens physiques pour tous les fichiers:

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

De cette façon , votre chroot de /binet /libpeut avoir une structure légèrement différente / contenu que les principaux répertoires.

Josh
la source
1
Bonne idée, mais si / chroot se trouve sur un autre appareil, cela ne fonctionnera pas. Vous ne pouvez pas créer de lien physique entre les appareils.
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
# ...
mcandre
la source
1
L'intention de la question semble être de donner accès aux fichiers existants plutôt que de les copier dans le chroot.
psusi