[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Chrooting an emulated binary?
- To: misc@openbsd.org
- Subject: Chrooting an emulated binary?
- From: "C. Bensend" <benny@bennyvision.com>
- Date: Sat, 14 Jun 2003 09:55:58 -0500
- Content-Disposition: inline
- Mail-Followup-To: misc@openbsd.org
- User-Agent: Mutt/1.2.5.1i
Hey folks,
I have set up linux emulation on 3.3-STABLE as of May 23rd. It
works perfectly - my Neverwinter Nights server comes up just fine. Yes,
I'm an addict. :)
However, since this machine is going out into the untamed wilderness
eventually, I'd like to be able to chroot the server. I don't run it
unattended (only when we fire up a gaming night), and I know that since there
are shells in /usr/local/emul/redhat the point is mostly moot. I'm aware
that there isn't a lot of benefit. It's become more of a "I wonder if I can"
sort of thing.
So, using chrootuid from the ports tree, I try to fire it up:
chrootuid /usr/local/emul/redhat nwn /home/nwn/start-nwn
Segmentation fault
'start-nwn' is just a simple sh script that sets all my options
before firing up the server. OK, so I get a segfault. Taking a look at
the ktrace (only the last few lines shown, full dump on request):
3777 chrootuid NAMI "/home/nwn/start-nwn"
3777 chrootuid NAMI "/bin/sh"
3777 chrootuid NAMI "/emul/svr4/lib/ld-linux.so.2"
3777 chrootuid NAMI "/emul/linux/lib/ld-linux.so.2"
3777 bash NAMI "/lib/ld-linux.so.2"
3777 bash EMUL "native"
3777 bash RET execve 0
3777 bash CALL getuid
3777 bash RET getuid 1009/0x3f1
3777 bash CALL getgid
3777 bash RET getgid 1009/0x3f1
3777 bash CALL getlogin(0x480a28cc,0xcfbfd414)
3777 bash RET getlogin 0
3777 bash CALL setlogin(0x480a28cc)
3777 bash RET setlogin -1 errno 1 Operation not permitted
3777 bash CALL ktrace(0xcfbfd1e4,0x4809b7f0,0,0x480a28cc)
3777 bash RET ktrace -1 errno 2 No such file or directory
3777 bash PSIG SIGSEGV SIG_DFL code 1 addr=0x0 trapno=1
3777 bash PSIG SIGSEGV SIG_DFL code 0 addr=0x0 trapno=0
3777 bash NAMI "bash.core"
Could someone a little more familiar with chroot processes and/or
linux emulation interpret the last dozen or so lines? I understand that
it's bash that's dying (the user nwn's shell), but I'm not really sure
why. Limitation of the bash in the linux stuff, perhaps?
Running the start-nwn script as user nwn non-chrooted works fine.
Thanks for any tips/tricks/cluebats,
Benny
--
God is dead and I don't feel all too well either.... -- Ralph Moonen