jfroebe has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

Question regarding pbrun. In perl you can use the env variable $< for real user and $> for effective user. When I run "/usr/bin/pbrun su - sybase" as myself, I get sybase as both the effective and real users. I would expect real: jason and effective: sybase. It sounds like it is something specific to pbrun - also "/usr/xpg4/bin/id -r" shows sybase as well. Is there a way to get the real id when running under pbrun?

This appears to be pbrun specific but I'm not finding anything on google. I'm looking for a workaround from within perl if possible. I'm using perl 5.8.5.

yup, I'm aware of the "who am i" unix command which returns the connection of which I'm using...

UPDATE:
Dang I feel rather stupid now...
The su - changes the real and effective ids.
To keep the real id, I would have to issue "su sybase" instead.

Jason L. Froebe

Team Sybase member

No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1

Replies are listed 'Best First'.
Re: (solaris) pbrun and the real user id
by sgifford (Prior) on May 12, 2005 at 21:27 UTC
    AFAIK su always changes both the real and effective UID (it did in my tests). Perhaps if you explain exactly what you're trying to do, we can come up with another way to do it.

      Actually, it depends on the implementation of su. I ended up using the who am i approach but it isn't full proof.

      sub whoami { return (split /\s+/, `/bin/who am i`)[0]; }

      Jason L. Froebe

      Team Sybase member

      No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1