setruid(3)

setruid3

Set user and group id

Usage

#include <unistd.h>

int

setruid(uid_t ruid);

int

setrgid(gid_t rgid);

Library

Standard C Library (libc, -lc)

Overview

The setruid() function (setrgid()) sets the real user ID (group ID) of the current process.

Return values

The setruid() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Compatibility

The use of these calls is not portable. Their use is discouraged; they will be removed in the future.

Errors

The functions fail if:

[EPERM]

The user is not the super user and the ID specified is not the real or effective ID.

Releases

87 releases since FreeBSD 2.0.5-RELEASE; the text changed 42 times.

  1. 2.0.5–2.1.7.1
  2. 2.2.2–2.2.6
  3. 2.2.7–3.4
  4. 3.5–3.5.1
  5. 4.0
  6. 4.1–4.3
  7. 4.4
  8. 4.5–4.11
  9. 5.0–5.5
  10. 6.0–6.3
  11. 6.4
  12. 7.0
  13. 7.1
  14. 7.2
  15. 7.3
  16. 7.4
  17. 8.0
  18. 8.1
  19. 8.2
  20. 8.3
  21. 8.4
  22. 9.0
  23. 9.1
  24. 9.2
  25. 9.3
  26. 10.0
  27. 10.1
  28. 10.2
  29. 10.3
  30. 10.4
  31. 11.0
  32. 11.1
  33. 11.2
  34. 11.3
  35. 11.4
  36. 12.0
  37. 12.1
  38. 12.2
  39. 12.3
  40. 12.4
  41. 13.0–13.2
  42. 13.3–14.5
  43. 15.0–16.0

History

The setruid() and setrgid() syscalls appeared in 4.2BSD and were dropped in 4.4BSD.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.