Menyediakan / bin dan / lib di dalam chroot jail

11

Saya harus dapat memberikan direktori / bin dan / lib di dalam chroot jail agar program dapat terhubung secara dinamis dengan benar.

Apakah ada cara untuk melakukan ini tanpa membuat salinan direktori / bin dan / lib ke chroot jail?

Saya sudah mencoba symlink, dan mereka tidak bekerja dari dalam chroot jails, dan direktori tidak dapat di-hardlink.

pengecut anonim
sumber

Jawaban:

14

Anda dapat menggunakan mountuntuk mengirim ulang direktori yang Anda butuhkan di penjara:

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

Untuk digunakan dalam /etc/fstab:

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

Bersulang!

jgr
sumber
2
Terima kasih banyak. Linux terus menjadi lebih baik dan lebih baik semakin saya bermain dengannya: p
pengecut anonim
Saya senang itu berhasil dengan baik! Bersulang!
jgr
3

Jika Anda tidak ingin me-mount direktori seperti yang dikatakan jgr, Anda dapat menggunakannya cpuntuk menyalin direktori secara berulang dan membuat hardlink untuk semua file:

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

Dengan cara ini chroot Anda /bindan /libdapat memiliki struktur / konten yang sedikit berbeda dari direktori utama.

Josh
sumber
1
Ide bagus, tetapi jika / chroot ada di perangkat yang berbeda ini tidak akan berfungsi. Anda tidak dapat membuat tautan keras antar perangkat.
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
sumber
1
Maksud dari pertanyaan tersebut tampaknya adalah untuk memberikan akses ke file yang ada daripada menyalinnya ke chroot.
psusi