1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 18:25:06 +00:00
serenity/Base/usr/share/man/man2/seteuid.md
Liav A 5a649d0fd5 Kernel: Return EINVAL when specifying -1 for setuid and similar syscalls
For setreuid and setresuid syscalls, -1 means to set the current
uid/euid/gid/egid value, to be more convenient for programming.
However, for other syscalls where we pass only one argument, there's no
justification to specify -1.

This behavior is identical to how Linux handles the value -1, and is
influenced by the fact that the manual pages for the group of one
argument syscalls that handle ID operations is ambiguous about this
topic.
2021-12-20 11:32:16 +01:00

39 lines
988 B
Markdown

## Name
seteuid, setegid - set effective user / group ID
## Synopsis
```**c++
#include <unistd.h>
int seteuid(uid_t);
int setegid(gid_t);
```
## Description
Sets the effective user or group ID.
For non-superusers, the effective ID can only be set to the current real or saved ID.
In particular, `seteuid(geteuid())` will fail if the current effective user ID is not equal to the current real or saved ID.
## Return value
If the call was set successful, returns 0.
Otherwise, returns -1 and sets `errno` to describe the error.
## Errors
* `EPERM`: The new ID is not equal to the real ID or saved ID, and the user is not superuser.
* `EINVAL`: The new ID is set to invalid value (-1).
## See also
* [`setuid_overview`(7)](../man7/setuid_overview.md)
* [`geteuid`(2) / `getegid`(2)](geteuid.md)
* [`getuid`(2) / `getgid`(2)](getuid.md)
* [`getresuid`(2) / `getresgid`(2)](getresuid.md)
* [`setuid`(2) / `setgid`(2)](setuid.md)
* [`setresuid`(2) / `setresgid`(2)](setresuid.md)