Test için kısıtlı bir BASH ortamı ihtiyacınız ve chrooting 'e kolay giriş yapmak için chroot ortamında bash kabuğu oluşturalım.Bunun için ilk olarak gerekli olan dizinleri oluşturun;
# mkdir /chroot
# mkdir /chroot/bash
# mkdir /chroot/bash/lib64
# mkdir /chroot/bash/bin
Gerekli olan dizinleri oluşturduktan sonra bash kabuğunun ihtiyacı olan kütüphaneleri dizine (lib64) kopyalamamız lazım.Bash'in ihtiyacı olan kütüphaneleri bulalım.ldd(list dynamic dependencies) komutu ile bu kütüphaneleri listeleyelim:
# ldd /bin/bash
linux-vdso.so.1 => (0x00007fffe2511000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f137fe71000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f137fc6d000)
libc.so.6 => /lib64/libc.so.6 (0x00007f137f902000)
/lib64/ld-linux-x86-64.so.2 (0x00007f13800c4000)
Yukardaki çıktıda görüldüğü gibi gerekli olan kütüphaneler:
-
libncurses.so.5
-
libdl.so.2
-
libc.so.6
-
ld-linux-x86-64.so.2
Yukardaki kütüphaneleri oluşturduğunuz dizine(lib64 - sisteminize göre bu dizin "lib" olabilir.) taşıyın:
# cp /lib64/libncurses.so.5 /chroot/bash/lib64
# cp /lib64/libdl.so.2 /chroot/bash/lib64
# cp /lib64/libc.so.6 /chroot/bash/lib64
# cp /lib64/ld-linux-x86-64.so.2 /chroot/bash/lib64
Bu işlemi yaptıktan sonra "bash" komutunu oluşturduğumuz "bin" dizinine kopyalayalım.
# cp /bin/bash /chroot/bash/bin
Şimdi ihtiyacımız olan komutları chroot bash kabuğunuza kopyalayın.Mesela "ls" komutundan başlayalım.
# ldd /bin/ls
linux-vdso.so.1 => (0x00007fff161ff000)
librt.so.1 => /lib64/librt.so.1 (0x00007fa1effe5000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007fa1efddc000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa1efa71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa1ef854000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa1f01ee000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007fa1ef64f000)
"ls" komutu için gerekli olan kütüphaneler yukardaki gibi.Hemen bunları chroot bash kabuğu ortamındaki "lib64" dizinine kopyalayın.
# cp /lib64/librt.so.1 /chroot/bash/lib64
# cp /lib64/libacl.so.1 /chroot/bash/lib64
# cp /lib64/libpthread.so.0 /chroot/bash/lib64
# cp /lib64/libattr.so.1 /chroot/bash/lib64
libc.so.6 ve ld-linux-x86-64.so.2 kütüphanelerini daha önce kopyaladığımız için bunlara gerek yok.Bu kütüphaneleri kopyaladıktan sonra "ls" komutunu oluşturduğumuz "bin" dizinine kopyalabiliriz.
# cp /bin/ls /chroot/bash/bin
Dizinimizdeki(lib64) kütüphaneler ile test edeceğimiz bash kabuğu için yeterli komutları çalıştırabiliriz.İhitiyacım olan cp,cat,touch,mkdir,rm,mv komutlarını kopyalayalım.
# cp /bin/cp /chroot/bash/bin
# cp /bin/mv /chroot/bash/bin
# cp /bin/cat /chroot/bash/bin
# cp /bin/rm /chroot/bash/bin
# cp /bin/mkdir /chroot/bash/bin
# cp /bin/touch /chroot/bash/bin
Kabuğumuz için ihtiyacımız olan komutlarını koyduktan sonra artık kısıtlı bash kabuğumuza giriş yapabiliriz.
# chroot /chroot/bash /bin/bash
Hiçbir hata almadıysanız kabuk ortamına girdiniz,şimdi koyduğunuz komutları test edebilirsiniz.