On Monday 07 March 2011 15:31, Tito wrote: > > > I see, but I guess this will not work : > > > > > > 1) in the case of multiple busybox binaries (e.g.: one suid and one not, > > > or base + extra applets) > > > > Re-execution is used only for NOMMU tricks to create a daemonized child > > (in which case we always re-execute *the same applet*, and having several > > busyboxes is not a problem), and for standalone shell and noexec trick, > > both of which fall back to $PATH searching, meaning they will also > > woth in "multiple busyboxes" setup. > > So lets make a little test: > > mkdir test > mkdir test/bin > mkdir test/sbin > mkdir test/usr/bin > mkdir test/usr/sbin > > compile a static busybox with all commands but without ls > compile a static busybox containing only ls > copy them to test/bin as busybox and busybox2 > we do not mount proc on purpose > > su > cd test > cd bin > ln -s busybox bash > cd .. > chroot . > busybox --install -s > busybox2 --install -s > ls > /bin/bash: ls: not found > cd bin > ./ls > ./ls: not found > > from another non chrooted shell > > ls > lrwxrwxrwx 1 tito tito 7 2011-03-07 15:08 bash -> busybox > lrwxrwxrwx 1 root root 14 2011-03-07 15:09 ls -> /proc/self/exe > > so the shell of our first busybox instance (bash) > calls ls by looking it up on the path as you have said > and founds it as link to /proc/self/exe and therefore > tries to rexec itself as ls rather than the other > busybox(2) binary containing the ls applet.
I agree that symlinks to /proc/self/exe are useless. What do you propose to do? -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
