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

Reply via email to