setuid, setgid - set user or group ID's
int setuid(uid_t uid)
int setgid(gid_t gid)
Setuid sets the real and effective user ID's of the current process to
uid. Unprivileged users may only change both user ID's to the real user
ID; only the super-user may make other changes. Setgid does the same for
the real and effective group ID's.
Minix-vmd allows an unprivileged user to change ID's to the original real
or effective ID as they were at the time the process was executed.
Setgid may also set the group ID's to any of the additional group ID's.
If one of the remembered user ID's was 0 then any user or group ID may be
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and errno is set to indicate the error.
[EPERM] The current process is not the super-user and a change
other than one of the allowed changes was attempted.