setegid (2)

SETEGID(2) Linux Programmer's Manual SETEGID(2) NAME seteuid, setegid - set effective user or group ID SYNOPSIS #include <sys/types.h> #include <unistd.h> int seteuid(uid_t euid); int setegid(gid_t egid); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): seteuid(), setegid(): _BSD_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 DESCRIPTION seteuid() sets the effective user ID of the current process. Unprivi- leged user processes may only set the effective user ID to the real user ID, the effective user ID or the saved set-user-ID. Precisely the same holds for setegid() with "group" instead of "user". RETURN VALUE On success, zero is returned. On error, -1 is returned, and errno is set appropriately. ERRORS EPERM The current process is not privileged (Linux: does not have the CAP_SETUID capability in the case of seteuid(), or the CAP_SET- GID capability in the case of setegid()) and euid (resp. egid) is not the real user (group) ID, the effective user (group) ID, or the saved set-user-ID (saved set-group-ID). CONFORMING TO 4.3BSD, POSIX.1-2001. NOTES Setting the effective user (group) ID to the saved set-user-ID (saved set-group-ID) is possible since Linux 1.1.37 (1.1.38). On an arbitrary system one should check _POSIX_SAVED_IDS. Under libc4, libc5 and glibc 2.0 seteuid(euid) is equivalent to setreuid(-1, euid) and hence may change the saved set-user-ID. Under glibc2.1 it is equivalent to setresuid(-1, euid, -1) and hence does not change the saved set-user-ID. Similar remarks hold for setegid(). SEE ALSO geteuid(2), setresuid(2), setreuid(2), setuid(2), capabilities(7), cre- dentials(7) Linux 2007-07-26 SETEGID(2)