http://www.perlmonks.org?node_id=833957


in reply to $< and setuid: quite different animals?

Try it the other way round (first effective, then real):

$> = $uid; $< = $uid; ...
$ sudo strace ./switchback.pl 2>&1 | grep '^setr' setresuid(-1, 65534, -1) = 0 setreuid(65534, 4294967295) = 0 setresuid(-1, 0, -1) = -1 EPERM (Operation not perm +itted) setreuid(0, 4294967295) = -1 EPERM (Operation not perm +itted)