Synopsis

#include <unistd.h>

int setuid(uid_t uid);

Status

Declared, not implemented

Conformance

IEEE Std 1003.1-2017

Description

If the process has appropriate privileges, setuid() shall set the real user ID, effective user ID, and the saved set-user-ID of the calling process to uid.

If the process does not have appropriate privileges, but uid is equal to the real user ID or the saved set-user-ID, setuid() shall set the effective user ID to uid; the real user ID and saved set-user-ID shall remain unchanged.

The setuid() function shall not affect the supplementary group list in any way.

Return value

Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned and errno set to indicate the error.

Errors

The setuid() function shall fail, return -1, and set errno to the corresponding value if one or more of the following are true:

  • EINVAL - The value of the uid argument is invalid and not supported by the implementation.

  • EPERM - The process does not have appropriate privileges and uid does not match the real user ID or the saved set-user-ID.

Tests

Untested

Known bugs

None

See Also

  1. Standard library functions
  2. Table of Contents