COHERENT manpages
This page displays the COHERENT manpage for setuid() [Set user identifier].
List of available manpages
Index
setuid() -- System Call (libc)
Set user identifier
#include <unistd.h>
int setuid(id)
int id;
The user identifier is the number that identifies the user who ``owns'' a
given file. The suite of users is defined in file /etc/passwd. When a file
is executable, the executing process inherits its user identifier (and
thus, its user-level permissions) from the file where it lives on disk.
The user identifier comes in three forms:
real This is the identifier of the user who is running the process.
effective
This is the user identifier that determines the access rights of the
process. These rights are the same as those of the real user
identifier unless they have been altered by executing a file whose
setuid bit is set.
saved effective
This permits a process to step back and forth between its real and
effective user identifiers. If you return from an effective user
identifier to your real one, the previously effective id is saved so
you can revert to it if need be.
The system call setuid() lets you alter the real and effective user
identifiers of the calling process to the user identifier uid. The behavior
of setuid() varies depending upon the following:
1. If the effective user identifier is that of the superuser, setuid() sets
the real, effective, and saved effective user identifiers to uid.
2. If the real user identifier is the same as uid, setuid() sets the
effective user identifier to uid.
3. If the saved effective user identifier is same as uid, setuid() sets the
effective user identifier to uid.
To setuid an existing executable file, use the command chmod.
See Also
chmod,
execution,
getuid(),
libc,
login,
setgid(),
unistd.h
POSIX Standard, §4.2.2
Diagnostics
setuid() returns zero on success, or -1 on failure.
Notes
For more information on the user id, see the Lexicon entry for execution.

















