setuid - Sets the user ID
int setuid (
uid_t user_id );
Application developers may want to specify an #include statement for
<<sys/types.h>> before the one for <<unistd.h>> if programs are being developed
for multiple platforms. The additional #include statement is not required
on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on
other vendors' systems that conform to these standards.
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
user_id Specifies the new user ID.
The setuid() function sets the real user ID, effective user ID, and the
saved set user ID to the user_id parameter.
To change the real user ID, the effective user ID, and the saved set user
ID, the calling process must have superuser privilege. If the process does
not have appropriate privilege, but the user_id parameter is equal to the
real user ID or the saved set user ID, the setuid() function sets the
effective user ID to the user_id parameter. The real user ID and saved set
user ID remain unchanged.
Upon successful completion, the setuid() function returns a value of 0
(zero). Otherwise, the function returns a value of -1 and sets errno to
indicate the error.
The setuid() function sets errno to the specified values for the following
[EAGAIN] [Tru64 UNIX] The process is attempting an operation that would
exceeds a system limit, such as the number of tasks or threads
allowed for a user ID.
[EINVAL] The value of the user_id parameter is invalid.
[EPERM] The process does not have superuser privileges, and the user_id
parameter does not match the real user ID or the saved set user
Functions: exec(2), getuid(2), setgid(2), setreuid(2)