setuid(2)setuid(2)NAMEsetuid - Set the user ID
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 XSH standards, but may
be required on other vendors' systems that conform to these standards.
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
setuid(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
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 fol‐
lowing conditions: [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. The value of the user_id parameter is
invalid. 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)