Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

execve(2V)

getgid(2V)

getuid(2V)

setregid(2)

setreuid(2)

SETUID(3V)  —  C LIBRARY FUNCTIONS

NAME

setuid, seteuid, setruid, setgid, setegid, setrgid − set user and group ID

SYNOPSIS

#include <sys/types.h>

int setuid(uid)
uid_t uid;

int seteuid(euid)
uid_t euid;

int setruid(ruid)
uid_t ruid;

int setgid(gid)
gid_t gid;

int setegid(egid)
gid_t egid;

int setrgid(rgid)
gid_t rgid;

DESCRIPTION

setuid() (setgid()) sets both the real and effective user ID (group ID) of the current process as specified by uid (gid) (see NOTES). 

seteuid() (setegid()) sets the effective user ID (group ID) of the current process. 

setruid() (setrgid()) sets the real user ID (group ID) of the current process. 

These calls are only permitted to the super-user or if the argument is the real or effective user (group) ID of the calling process. 

SYSTEM V DESCRIPTION

If the effective user ID of the calling process is not super-user, but if its real user (group) ID is equal to uid (gid), or if the saved set-user (group) ID from execve(2V) is equal to uid (gid), then the effective user (group) ID is set to uid (gid).

RETURN VALUES

These functions return:

0 on success. 

−1 on failure and set errno to indicate the error as for setreuid(2) (setregid(2)). 

ERRORS

EINVAL The value of uid (gid) is invalid (less than 0 or greater than 65535).

EPERM The process does not have super-user privileges and uid (gid) does not matches neither the real user (group) ID of the process nor the saved set-user-ID (set-group-ID) of the process. 

SEE ALSO

execve(2V), getgid(2V), getuid(2V), setregid(2), setreuid(2)

NOTES

For setuid() to behave as described above, {_POSIX_SAVED_IDS} must be in effect (see sysconf(2V)).  {_POSIX_SAVED_IDS} is always in effect on OS/MP systems, but for portability, applications should call sysconf() to determine whether {_POSIX_SAVED_IDS} is in effect for the current system. 

Solbourne Computer, Inc.  —  21 January 1990

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026