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.