Bereitstellung von / bin und / lib in einem Chroot-Gefängnis


11

Ich muss in der Lage sein, die Verzeichnisse / bin und / lib in einem Chroot-Gefängnis bereitzustellen, damit Programme dynamisch richtig verknüpft werden können.

Gibt es eine Möglichkeit, dies zu erreichen, ohne eine Kopie der Verzeichnisse / bin und / lib im Chroot-Gefängnis zu erstellen?

Ich habe Symlinks ausprobiert und sie funktionieren nicht in Chroot-Gefängnissen, und Verzeichnisse können nicht fest verknüpft werden.

Antworten:


14

Sie mountkönnen die Verzeichnisse, die Sie in Ihrem Gefängnis benötigen, erneut bereitstellen:

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

Zur Verwendung in /etc/fstab:

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

Prost!


2
Danke vielmals. Linux wird immer besser, je mehr ich damit spiele: p
anonymer Feigling

Ich bin froh, dass es gut geklappt hat! Prost!
jgr

3

Wenn Sie die Verzeichnisse nicht wie von jgr angegeben bereitstellen möchten, können Sie cpVerzeichnisse rekursiv kopieren und Hardlinks für alle Dateien erstellen:

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

Auf diese Weise Ihres chroot /binund /libkönnen leicht unterschiedliche Struktur / Inhalt als die Hauptverzeichnisse haben.


1
Gute Idee, aber wenn sich / chroot auf einem anderen Gerät befindet, funktioniert dies nicht. Sie können keine Geräte miteinander verbinden.
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
Die Absicht der Frage scheint darin zu bestehen, Zugriff auf die vorhandenen Dateien zu gewähren, anstatt sie in die Chroot zu kopieren.
Psusi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.