setreuid(2) System Calls Manual setreuid(2) setreuid, setregid - / (libc -lc) #include int setreuid(uid_t ruid, uid_t euid); int setregid(gid_t rgid, gid_t egid); glibc ( feature_test_macros(7)): setreuid(), setregid(): _XOPEN_SOURCE >= 500 || /* glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE setreuid() . -1 . . . ( ruid -1) . setregid() "" "". . -1 errno . : setreuid() UID 0 setreuid() . EAGAIN (UID) ( ruid ) . EAGAIN ruid ruid RLIMIT_NPROC . 3.1 ( ) EAGAIN execve(2). EINVAL . EPERM ( : CAP_SETUID setreuid() CAP_SETGID setregid()) (i) () () (ii) (iii) () ( ). POSIX.1 UID . setreuid() . setregid() . . POSIX.1 . POSIX.1-2024. POSIX.1-2001, 4.3BSD ( 4.2BSD). () ( ) 1.1.37 (1.1.38). setreuid() setregid() 16 . 2.4 setreuid32() setregid32() 32 . setreuid() setregid() glibc . C . POSIX . NPTL POSIX UIDs GIDs . ( setreuid() setregid()) . nptl(7). getgid(2), getuid(2), seteuid(2), setgid(2), setresuid(2), setuid(2), capabilities(7), credentials(7), user_namespaces(7) 3 . . : . 6.18 8 2026 setreuid(2)