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