• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

chroot minimal beispeil

eckobar

Newbie
hallo leute. habe schon mehrere mal von chroot environment gehört und wollte die geschichte jetzt mal selber ausprobieren. hab mir hierzu die man / info page zu chroot angesehen und daraus habe ich folgendes beispiel extrahiert:

1) mkdir /temp/test
2) cp /bin/ls /temp/test
3) chmod a=rwx /temp/test (nur für testzwecke)
4) chroot /temp/test /ls /

und ich bekomme aber die fehlermeldung can not run command /ls. (sowie in man page)

habe auch schon mehrere andere varianten probiert
chroot /temp/test /temp/test/ls /
.......

ist aber genau das selbe beispiel wie auf manpage und auf mehreren website. habe ich da irgendeinen denkfehler?

vielleicht kann mir ja jemand von euch helfen?
 
Du musst schon etwas mehr für chroot machen.
Auch die Libraries und alles was der Prozess sonst
benötigt muss vorhanden sein.

ldd /bin/ls => Zeigt die libraries
/dev, /etc als Verzeichnisse werden evtl. benötigt.

Haveaniceday

PS: Ein Anleitung oder genaueres weiß ich nicht.
 
OP
E

eckobar

Newbie
werd ich am abend ausprobieren. könnte vielleicht etwas damit zu tun haben, dass man static und dynamically linken kann. hab ich in manpage gelesen. gehe jetzt mal davon aus, dass meines also dynamically linked ist und somit brauch ich libs.

werd ich heute abend probieren. bin schon gespannt.

erstmal danke für denk anstoss.
 
OP
E

eckobar

Newbie
so wie haveaniceday bereits angedeutet hat, haben dem ls einige libraries gefehlt.
> ldd /bin/ls
linux-gate.so.1 => (0xffffe000)
librt.so.1 => /lib/tls/librt.so.1 (0x40037000)
libacl.so.1 => /lib/libacl.so.1 (0x40040000)
libselinux.so.1 => /lib/libselinux.so.1 (0x40047000)
libc.so.6 => /lib/tls/libc.so.6 (0x40057000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40176000)
/lib/ld-linux.so.2 (0x40000000)
libattr.so.1 => /lib/libattr.so.1 (0x40188000)

wie aus dem listing hervor geht sind eigentlich alle benötigten libraries unter /lib bzw. einem unterordner zu finden. hab alles einfach cp -r /lib /tmp/test gemacht und dann wie oben schon genannt:
chroot /tmp/test /ls /
hast mir dann den richtigen inhalt angezeigt
> lib ls

in meinem oberen ldd listing ist zwar eine datei verzeichnet, jedoch habe ich diese nicht auf meinem system gefunden linux-gate.so.1. hab aber auch nicht wirklich intensiv gesucht. hab mein find / -iname *linux*gate* nach 3 minuten wieder abgebrochen, weil ich ressourcen für meine vmware brauchte. *gg*

danke an haveaniceday der mir entscheidenden tip gegeben hat.
 
Oben