Portál AbcLinuxu, 16. dubna 2024 20:16


Dotaz: Divný chroot

27.8.2009 13:50 ja_kral_ll | skóre: 17
Divný chroot
Přečteno: 500×
Odpovědět | Admin

Ahoj,

velmi divně se mi chová chroot. Chrootuji do složky /chroot/bartacekp

lopuch # ls /chroot/bartacekp   
bin data etc home lib usr
lopuch # ls /chroot/bartacekp/bin/
bash  cp  ls  mkdir  mv  ping  pwd  rm  rmdir  sh

Pokud se pokusím do této složky chrootnout tak :

lopuch # chroot /chroot/bartacekp/ /bin/bash
chroot: cannot run command `/bin/bash': No such file or directory
 

Přitom je /chroot/bartacekp/bin/bash normálně spustitelný soubor

lopuch # ldd /chroot/bartacekp/bin/bash 
    linux-vdso.so.1 =>  (0x00007fffbb3ff000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00007f5a101f8000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f5a0fff4000)
    libc.so.6 => /lib/libc.so.6 (0x00007f5a0fc9f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5a10457000)

Díky za nápady

 


 

 

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.8.2009 14:36 Radovan Garabík
Rozbalit Rozbalit vše Re: Divný chroot
Odpovědět | | Sbalit | Link | Blokovat | Admin

 Čo vypíše strace -f toho chrootu?

27.8.2009 14:37 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Divný chroot
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ty knihovny tam máš v /home/bartacekp/lib taky?
27.8.2009 15:07 NN
Rozbalit Rozbalit vše Re: Divný chroot

Mas tam chybu:

chroot /chroot/bartacekp/ /chroot/bartacekp/bin/bash
NN
27.8.2009 15:18 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Divný chroot

To si nemyslím (čtěte není to tak).

Ten příkaz (druhý parametr chroot) se spouští už v novém prostředí, tedy cesta je relativní od rootu chrootu - wow, to je věta :-D

27.8.2009 16:35 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemáte tam místo binárky bash omylem jen link? Raději se ptám, protože ldd nic nedokazuje, to linky resolvuje:
bash# ldd /bin/sh
        linux-vdso.so.1 =>  (0x00007fff7d63e000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x00007f47e5d32000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f47e5b2e000)
        libc.so.6 => /lib/libc.so.6 (0x00007f47e57e6000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f47e5f8f000)

bash# ls -ld /bin/sh
lrwxrwxrwx 1 root root 4 Jan  5  2009 /bin/sh -> bash
28.8.2009 06:51 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Divný chroot
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máte v chrootu ld-linux.so.2 ?
In Ada the typical infinite loop would normally be terminated by detonation.
28.8.2009 11:11 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Děkuji za všechn nápady, ale o link se nejedná

lopuchl # ls -al /chroot/bartacekp/bin/
celkem 5784
drwxr-xr-x 2 bartacekp backup    4096 27. srp 11.33 .
drwxr-xr-x 9 root      root      4096 27. srp 13.40 ..
-rwxr-xr-x 1 bartacekp backup  768024 26. srp 11.07 bash
-rwxr-xr-x 1 bartacekp backup  101208 26. srp 11.07 cp
-rwxr-xr-x 1 bartacekp backup  109704 26. srp 11.07 ls
-rwxr-xr-x 1 bartacekp backup   43400 26. srp 11.07 mkdir
-rwxr-xr-x 1 bartacekp backup   92992 26. srp 11.07 mv
-rwx--x--x 1 bartacekp backup   35544 26. srp 11.07 ping
-rwxr-xr-x 1 bartacekp backup   39288 26. srp 11.07 pwd
-rwxr-xr-x 1 bartacekp backup   59928 26. srp 11.07 rm
-rwxr-xr-x 1 bartacekp backup   35112 26. srp 11.07 rmdir
-rwxr-xr-x 1 bartacekp backup  768024 26. srp 11.07 sh

A zmíněná knihovna je jak v chrootu, tak v systému

lopuchl # ls -al /chroot/bartacekp/lib/
celkem 2204
drwxr-xr-x 2 bartacekp backup    4096 28. srp 11.03 .
drwxr-xr-x 9 root      root      4096 27. srp 13.40 ..
-rwxr-xr-x 1 bartacekp backup  121292 28. srp 11.03 ld-linux.so.2
-rwxr-xr-x 1 bartacekp backup   35280 26. srp 11.08 libacl.so.1
-rwxr-xr-x 1 bartacekp backup   18656 26. srp 11.08 libattr.so.1
-rwxr-xr-x 1 bartacekp backup 1383600 28. srp 11.04 libc.so.6
-rwxr-xr-x 1 bartacekp backup   14512 28. srp 11.04 libdl.so.2
-rwxr-xr-x 1 bartacekp backup  383920 28. srp 11.04 libncurses.so.5
-rwxr-xr-x 1 bartacekp backup  137030 26. srp 11.08 libpthread.so.0
-rwxr-xr-x 1 bartacekp backup   84624 26. srp 11.08 libresolv.so.2
-rwxr-xr-x 1 bartacekp backup   35656 26. srp 11.08 librt.so.1

28.8.2009 11:18 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
lib64 předpokládám máte taky... záhada
28.8.2009 11:19 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
jo nemáte, takže ještě /lib64/ld-linux-x86-64.so.2
28.8.2009 12:44 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Nakpíroval jsem tedy i 64bit knihovnu do složky lib

cp /lib64/ld-linux.so.2 /chroot/bartacekp/lib/ld-linux-x86-64.so.2

Takže stávající stav je takový :

lopuch # ls -al /chroot/bartacekp/lib/
celkem 2328
drwxr-xr-x 2 bartacekp backup    4096 28. srp 12.40 .
drwxr-xr-x 9 root      root      4096 27. srp 13.40 ..
-rwxr-xr-x 1 bartacekp backup  121292 28. srp 11.03 ld-linux.so.2
-rwxr-xr-x 1 bartacekp backup  121292 28. srp 12.40 ld-linux-x86-64.so.2
-rwxr-xr-x 1 bartacekp backup   35280 26. srp 11.08 libacl.so.1
-rwxr-xr-x 1 bartacekp backup   18656 26. srp 11.08 libattr.so.1
-rwxr-xr-x 1 bartacekp backup 1383600 28. srp 11.04 libc.so.6
-rwxr-xr-x 1 bartacekp backup   14512 28. srp 11.04 libdl.so.2
-rwxr-xr-x 1 bartacekp backup  383920 28. srp 11.04 libncurses.so.5
-rwxr-xr-x 1 bartacekp backup  137030 26. srp 11.08 libpthread.so.0
-rwxr-xr-x 1 bartacekp backup   84624 26. srp 11.08 libresolv.so.2
-rwxr-xr-x 1 bartacekp backup   35656 26. srp 11.08 librt.so.1

Ale bezeměny...


 

michich avatar 28.8.2009 13:25 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Divný chroot
Proč do lib a ne do lib64?
28.8.2009 13:35 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Myslel jsem že je to jedno, vytvořil jsem i složku lib64 a nic...

michich avatar 28.8.2009 14:07 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Divný chroot
Nenakopíroval sis tam náhodou jenom pouhý symlink?
28.8.2009 14:16 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Ne

lopuch # ls -al /chroot/bartacekp/lib
celkem 2328
drwxr-xr-x  2 bartacekp backup    4096 28. srp 12.40 .
drwxr-xr-x 10 root      root      4096 28. srp 13.34 ..
-rwxr-xr-x  1 bartacekp backup  121292 28. srp 11.03 ld-linux.so.2
-rwxr-xr-x  1 bartacekp backup  121292 28. srp 12.40 ld-linux-x86-64.so.2
-rwxr-xr-x  1 bartacekp backup   35280 26. srp 11.08 libacl.so.1
-rwxr-xr-x  1 bartacekp backup   18656 26. srp 11.08 libattr.so.1
-rwxr-xr-x  1 bartacekp backup 1383600 28. srp 11.04 libc.so.6
-rwxr-xr-x  1 bartacekp backup   14512 28. srp 11.04 libdl.so.2
-rwxr-xr-x  1 bartacekp backup  383920 28. srp 11.04 libncurses.so.5
-rwxr-xr-x  1 bartacekp backup  137030 26. srp 11.08 libpthread.so.0
-rwxr-xr-x  1 bartacekp backup   84624 26. srp 11.08 libresolv.so.2
-rwxr-xr-x  1 bartacekp backup   35656 26. srp 11.08 librt.so.1
lopuch # ls -al /chroot/bartacekp/lib64/
celkem 132
drwxr-xr-x  2 bartacekp backup   4096 28. srp 13.34 .
drwxr-xr-x 10 root      root     4096 28. srp 13.34 ..
-rwxr-xr-x  1 bartacekp backup 121292 28. srp 13.34 ld-linux.so.2

28.8.2009 15:52 Jirka
Rozbalit Rozbalit vše Re: Divný chroot
Je ta knihovna ld-linux.so.2 v chroot /lib64 opravdu 64bitova? ma podezrele stejnou velikost jako ta 32bitova.
28.8.2009 15:53 Jirka
Rozbalit Rozbalit vše Re: Divný chroot

Je ta knihovna ld-linux.so.2 v chroot /lib64 opravdu 64bitova? ma podezrele stejnou velikost jako ta 32bitova.

28.8.2009 15:59 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Zajímavá otázka, jak ale posoudit její šedesátičtyřbitovost ?

28.8.2009 16:12 komodo | skóre: 27 | blog: komodo
Rozbalit Rozbalit vše Re: Divný chroot

[root@host lib]# file ld-2.5.so
ld-2.5.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
[root@host lib64]# file ld-2.5.so
ld-2.5.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
 

28.8.2009 16:41 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Díky za nakopnutí, toto jsou originály v systému.

Není zvláštní že 64bit knihovna linkuje na knihovnu ve složce lib32 a ta následně na nějakou která je 64bit ?

lopuch # file /lib64/ld-linux.so.2
/lib64/ld-linux.so.2: symbolic link to `../lib32/ld-linux.so.2'
lopuch # file /lib32/ld-linux.so.2 
/lib32/ld-linux.so.2: symbolic link to `ld-2.9.so'

lopuch # file /lib/ld-2.9.so 
/lib/ld-2.9.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), stripped

Teď jak z toho ven ? Podotýkám že se jená o 64bit gentoo

28.8.2009 17:12 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
Není to divné, jen jste se překouknul. První knihovna je 64 bit, linkuje na 32 bit do /lib32, to je ok, a ta pak linkuje na ld-2.9.so, ale stále v adresáří /lib32, nikoliv na 64 bit verzi. Chce to akorát lépe koukat.

Jinak /lib64 má alias /lib, takže tam jsou všeliaké 64 knihovny a také linky na 32 bitové knihovny. Dřív žádné adresáře /lib32 a /lib64 nebyly, protože nebyly 64bitové systémy, teď jsou tak se to takhle ohákovalo.
28.8.2009 17:06 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
Co jste to zase provedl? Podívejte se prosím na svůj zcela původní výpis ldd:
lopuch # ldd /chroot/bartacekp/bin/bash 
    linux-vdso.so.1 =>  (0x00007fffbb3ff000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00007f5a101f8000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f5a0fff4000)
    libc.so.6 => /lib/libc.so.6 (0x00007f5a0fc9f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5a10457000)
A nakopírujte do adresáře /chroot/bartacekp/lib64 soubor ld-linux-x86-64.so.2, tedy žádný ld-linux.so.2 jak tady někdo plašil. Možná se ještě předtím mrkněte jestli máte v orig. systému symlink /lib na /lib64, předpokládám že ano, pak by stačilo adresář lib v chrootu pojmenovat lib64, dát tam tu knihovnu (už tam snad je) a udělat na něj link (porstě aby to bylo stejně jako v původním systému).
28.8.2009 17:17 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
A prosím nepřejmenovávejte při kopírování soubory, koledujete si o malér, když tak použijte nějaký filemanager:

cp /lib64/ld-linux.so.2 /chroot/bartacekp/lib/ld-linux-x86-64.so.2

ale

cp /lib64/ld-linux-x86-64.so.2 /chroot/bartacekp/lib/ld-linux-x86-64.so.2
28.8.2009 17:19 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Divný chroot
Takže tam tu knihovnu nakopírujte znova, protože teď tam máte blbou verzi (i v /lib64 se vyskytují 32 bitévé verze, protože lib64 je takové skladiště 64bit knihovne a linků na 32bitové ve tvaru ../lib32/knihovna.so).
3.9.2009 09:40 ja_kral_ll | skóre: 17
Rozbalit Rozbalit vše Re: Divný chroot

Omlouvám se za tak dlouhou odezvu, byl jsem mimo. To tvoje doporučení zabralo, chtělo to nakopírovat ještě nějaký knihovny. Je stejně zavádející že hlásil že /bin/bash neexistuje...

Děkuji vám všem :)

3.9.2009 10:10 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Divný chroot
To není že neexistuje bash, ale že při spouštění bash se narazilo na chybu "neexistující soubor", v tomto případě to byl dynamic linker. Poučení: pokud to hlásí program no such file, tak buď neexistuje program, nebo linker, případně pokud je program skript, tak jeho interpretr (můžete si představit že linker je interpretr pro ELF soubory).
In Ada the typical infinite loop would normally be terminated by detonation.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.