I solved the permissions issue: setgid $gid; $) = "$gid, $gid"; setuid $uid; chdir $dir; print "After: $)\n" Before: 0 10 6 4 3 2 1 0 After: 500 10 6 4 3 2 1 0 $ ps > /out.t /bin/sh: cannot create /out.t: Permission denied $