Saya seorang pemula chroot yang mencoba membuat penjara chroot sederhana tetapi saya membenturkan kepala saya terhadap masalah yang sama berulang kali ... Bantuan apa pun akan sangat dihargai
Saya telah membuat direktori /usr/chroot
yang ingin saya gunakan sebagai jail dan membuat subdirektori di bawahnya dan menyalin dependensi /bin/bash
ke dalamnya:
[root@WIG001-001 ~]# cd /usr/chroot/
[root@WIG001-001 chroot]# ls
[root@WIG001-001 chroot]# mkdir bin etc lib var home
[root@WIG001-001 chroot]# ldd /bin/bash
linux-vdso.so.1 => (0x00007fff99dba000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000037a2000000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000379fc00000)
libc.so.6 => /lib64/libc.so.6 (0x000000379f800000)
/lib64/ld-linux-x86-64.so.2 (0x000000379f400000)
[root@WIG001-001 chroot]# cp /lib64/libtinfo.so.5 /usr/chroot/lib/
[root@WIG001-001 chroot]# cp /lib64/libdl.so.2 /udr/csr/chroot/lib/
[root@WIG001-001 chroot]# cp /lib64/libc.so.6 /usr/chroot/lib/
[root@WIG001-001 chroot]# cp /lib64/ld-linux-x86-64.so.2 /usr/chroot/lib/
[root@WIG001-001 chroot]# cp /bin/bash bin
[root@WIG001-001 chroot]# pwd
/usr/chroot
[root@WIG001-001 chroot]# /usr/sbin/chroot .
/usr/sbin/chroot: cannot run command `/bin/bash': No such file or directory
it looks like the /bin/bash created under /usr/chroot is fine as the below works:
[root@WIG001-001 chroot]# su - nobody -s /usr/chroot/bin/bash
-bash-4.0$
Adakah yang bisa memberi saya ide ke mana harus pergi dari sini?
cp /lib64/libdl.so.2 /udr/csr/chroot/lib/
(seharusnya/usr
bukan/udr
)Jawaban:
Pesan kesalahan menyesatkan :
/bin/bash: No such file or directory
bisa berarti itu/bin/bash
tidak ada, atau bahwa loader dinamis yang digunakan oleh/bin/bash
tidak ada. (Anda juga akan mendapatkan pesan ini untuk skrip jika penerjemah di#!
telepon tidak ada.)/bin/bash
sedang mencari/lib64/ld-linux-x86-64.so.2
tetapi Anda berikan/lib/ld-linux-x86-64.so.2
. Buat/usr/chroot/lib64
simbolis untuklib
atau sebaliknya.sumber
cp
perintah Anda: Anda menyalin file dari/lib64
dalam sistem dasar ke/lib
dalam chroot. Tapi biner bash masih mencarild-linux-x86-64.so.2
di/lib64
(yang belum Anda buat), bukan/lib
. Anda akan menyelamatkan diri dari sakit kepala dengan membuat/lib
dan/lib64
menyamakannya di chroot, jadi jalankanln -s lib /usr/chroot/lib64
. Mengenai mengapa pesan kesalahannya adalah tentangbash
dan bukan tentangld-linux-x86-64.so.2
, lihat paragraf pertama saya./lib
adalah symlink untuk/usr/lib
meletakkan file di/usr/lib
dalamnya/lib
, karena itu adalah direktori yang sama! Pada firasat, itu tidak berhasil pada awalnya karena loader menyimpan cache dari konten/lib
dan/usr/lib
, dan mulai bekerja ketika cache dibangun kembali. Menjalankanldconfig
membangun kembali cache, dan itu mungkin telah dilakukan oleh Anda atau secara otomatis misalnya oleh manajer paket ketika Anda menginstal pembaruan perangkat lunak.Lakukan saja ini:
mv /usr/chroot/lib /usr/chroot/lib64
sumber
Saya juga menghadapi kesalahan yang sama. Cara terbaik adalah menemukan perbedaan antara konten gambar rescue (live CD) "/" dan "/ mnt / sysimage".
Masalah diselesaikan dengan mengatasi / bin dan / sbin dari direktori "/" ke "/ mnt / sysimage" di mana ia dihapus secara tidak sengaja.
sumber
Anda harus mencoba menyalin file .bashrc di direktori home. dan itu pasti akan membantu.
sumber