#!/usr/bin/perl use English; my @temp = ($EUID, $EGID); my $orig_uid = $UID; my $orig_gid = $GID; print('$UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: '.$UID.", ".$GID.", ".$EUID.", ".$EGID.", ".$orig_uid.", ".$orig_gid."\n"); print('@temp: '.$temp[0].", ".$temp[1]."\n\n"); $EUID = $UID; $EGID = $GID; print('$UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: '.$UID.", ".$GID.", ".$EUID.", ".$EGID.", ".$orig_uid.", ".$orig_gid."\n"); print('@temp: '.$temp[0].", ".$temp[1]."\n\n"); # Drop privileges $UID = $orig_uid; $GID = $orig_gid; print('$UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: '.$UID.", ".$GID.", ".$EUID.", ".$EGID.", ".$orig_uid.", ".$orig_gid."\n"); print('@temp: '.$temp[0].", ".$temp[1]."\n\n"); # Make sure privs are really gone ($EUID, $EGID) = @temp; print('$UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: '.$UID.", ".$GID.", ".$EUID.", ".$EGID.", ".$orig_uid.", ".$orig_gid."\n"); print('@temp: '.$temp[0].", ".$temp[1]."\n\n"); #### $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 1015, 1001 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 0, 0 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 0, 0 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 1015, 0 0, 0, 0 0 @temp: 1015, 1001 0 #### ($EUID, $EGID) = @temp; #### $EGID = $temp[1]; $EUID = $temp[0]; #### $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 1015, 1001 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 0, 0 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 0, 0 0, 0, 0 0 @temp: 1015, 1001 0 $UID, $GID, $EUID, $EGID, $orig_UID, $orig_GID: 0, 0 0, 1015, 1001 0, 0, 0 0 @temp: 1015, 1001 0