Bir chroot hapishanesinde / bin ve / lib sağlama


11

Programların dinamik olarak düzgün bir şekilde bağlanabilmesi için / bin ve / lib dizinlerini bir kroke hapishanesinde sağlayabilmem gerekiyor.

/ Bin ve / lib dizinlerini chroot hapishanesine kopyalamadan bunu yapmanın bir yolu var mı?

Sembolik bağları denedim, ve bunlar kroot hapishanelerinin içinden çalışmaz ve dizinler sabit bağlanamaz.

Yanıtlar:


14

mountHapishanenizde ihtiyacınız olan dizinleri yeniden monte etmek için kullanabilirsiniz :

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

Kullanım yeri /etc/fstab:

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

Şerefe!


2
Çok teşekkürler. Linux onunla oynadıkça daha da iyi olmaya devam ediyor: p
anonim korkak

İyi çalıştı sevindim! Şerefe!
jgr

3

Jgr'un dediği gibi dizinleri bağlamak istemediyseniz, dizinleri cpözyinelemeli olarak kopyalamak ve tüm dosyalar için sabit bağlantılar oluşturmak için kullanabilirsiniz:

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

Bu şekilde, chroot'unuz /binve /libana dizinlerden biraz farklı bir yapıya / içeriğe sahip olabilirsiniz.


1
İyi fikir, ancak / chroot farklı bir cihazdaysa bu çalışmaz. Cihazlar arasında sabit bağlantı kuramazsınız.
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
Sorunun amacı varolan dosyalara chroot kopyalamak yerine erişim sağlamak gibi görünüyor.
psusi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.