On Tue, Mar 9, 2010 at 3:22 PM, Ron McDowell <r...@fuzzwad.org> wrote:
...
> Yes, fresh install of the install47.iso from a couple days back, but have
> rebuilt /usr/src a few times since...but no other changes other than adding
> bash  [hmm, let me change to /bin/sh... nope, same behavior.]
...
> [...@zombie(OpenBSD)]> id
> uid=1000(rcm) gid=1000(rcm) groups=1000(rcm), 0(wheel), 5(operator),
> 12345(apache)
> ~
> [...@zombie(OpenBSD)]> /usr/bin/su
> Password:
> # id
> uid=0(root) gid=1000(rcm) groups=0(wheel), 2(kmem), 3(sys), 4(tty),
> 5(operator), 20(staff), 31(guest)
> # ^D
> ~
> [...@zombie(OpenBSD)]> /usr/bin/su -
> Password:
> # id
> uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), 4(tty),
> 5(operator), 20(staff), 31(guest)

*Something* is whacked on your system.

I suggest:
1) cd /usr/src/usr.bin/su
2) make clean && make obj && make DEBUG=-g
3) /usr/bin/su        # WITHOUT the - or -l
4) id        # confirm gid=1000
5) /usr/bin/su        # again, without - or -l
6) id        # confirm gid=1000 still
7) exit        # the 'inner' su
8) gdb obj/su
  Then, as input to gdb:

   b main
   r
   b setusercontext
   c

...and then each time it breaks hits the setusercontext() breakpoint, do:
   up
   p *pwd
   p/x flags
   c

and capture the output from the two 'p' commands.

When it reports "Program received signal SIGTRAP, Trace/breakpoint
trap.", just do
   kill
   q

9) post the captured output (mung _only_ the pw_passwd value!)


Philip Guenther

Reply via email to