Fornire / bin e / lib all'interno di un carcere chroot


11

Devo essere in grado di fornire le directory / bin e / lib all'interno di un carcere chroot in modo che i programmi possano collegarsi dinamicamente correttamente.

C'è un modo per ottenere questo risultato senza fare una copia delle directory / bin e / lib nel carcere chroot?

Ho provato i collegamenti simbolici e non funzionano dall'interno delle chroot jail e le directory non possono essere hardlinkate.

Risposte:


14

Puoi usare mountper rimontare le directory che ti servono nella tua prigione:

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

Per l'uso in /etc/fstab:

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

Saluti!


2
Molte grazie. Linux continua a migliorare sempre più ci gioco: p
codardo anonimo il

Sono contento che abbia funzionato bene! Saluti!
giovedì

3

Se non volevi montare le directory come ha detto jgr, puoi usare cpricorsivamente per copiare le directory e creare collegamenti fisici per tutti i file:

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

In questo modo il vostro chroot /bine /libpuò avere un po 'diversa struttura / contenuti rispetto ai principali indici.


1
Buona idea, ma se / chroot si trova su un dispositivo diverso, non funzionerà. Non è possibile collegarsi a tutti i dispositivi.
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
L'intento della domanda sembra essere quello di fornire l'accesso ai file esistenti anziché copiarli nel chroot.
psusi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.