Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: EUID cannot be set

by jettero (Monsignor)
on May 09, 2007 at 21:19 UTC ( #614497=note: print w/replies, xml ) Need Help??


in reply to EUID cannot be set

I wasn't aware you could set the uid and gid through those vars... neat.

I've always used POSIX::setuid (and setgid). perlvar states that if $> = $uid or $< = $uid fails that it sets the $! to an appropriate error message. I'd look there.

$< = $> = 1000 or die "hrmph... silly perms or something: $!";

-Paul

Replies are listed 'Best First'.
Re^2: EUID cannot be set
by 0xbeef (Hermit) on May 09, 2007 at 21:34 UTC
    Mmm, I did in fact check that:

    linux: demotion to sys(4294967294) failed: Bad file descriptor (euid: +-2) aix: demotion to nobody(4294967294) failed: (euid: -2)

    Niel

      Note on AIX's nobody user for Exim
      Services for Unix blog

      It seems this is not overflow. It's just a representation in one place using an unsigned value and in another using a signed value.

      Considering there are 4,294,967,296 values in a 32-bit integer and that the signed number would be in two's complement if negative, -2 is exactly the same as 4294967294.

      As a matter of fact, I believe your EUID is being set. It's just not being set to the right interpretation of the number. I suggest you ponder this code:

      #!/usr/bin/perl -- use strict; use warnings; my $nobody = 4294967294; print $nobody . "\n"; $nobody = pack 'I', -2; $nobody = unpack 'I', $nobody; print $nobody . "\n";


      Christopher E. Stith

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://614497]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2020-11-30 15:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?