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.

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!


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.


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
# ...

1
Maksud dari pertanyaan tersebut tampaknya adalah untuk memberikan akses ke file yang ada daripada menyalinnya ke chroot.
psusi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.