/ binと/ libをchroot jail内に提供する


11

プログラムが動的に適切にリンクできるように、chroot jail内に/ binおよび/ libディレクトリを提供できるようにする必要があります。

/ binおよび/ libディレクトリをchroot刑務所にコピーせずにこれを達成する方法はありますか?

私はシンボリックリンクを試してみましたが、chroot刑務所の内部からは機能せず、ディレクトリをハードリンクすることはできません。

回答:


14

mount刑務所で必要なディレクトリを再マウントするために使用できます:

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

で使用する場合/etc/fstab

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

乾杯!


2
どうもありがとう。Linuxは、プレイするにつれてどんどん良くなっていきます:p
匿名の臆病者

それがうまくいったことを嬉しく思います!乾杯!
jgr

3

jgrが言ったようにディレクトリをマウントしたくない場合は、を使用cpしてディレクトリを再帰的にコピーし、すべてのファイルのハードリンクを作成できます。

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

このようにして、chrootの/bin/libは、メインディレクトリとは少し異なる構造/コンテンツを持つことができます。


1
良い考えですが、/ chrootが別のデバイス上にある場合、これは機能しません。デバイス間でハードリンクすることはできません。
AllenKll 2016年

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
問題の目的は、既存のファイルをchrootにコピーするのではなく、それらにアクセスできるようにすることです。
psusi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.