| .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) |
| .\" |
| .\" %%%LICENSE_START(VERBATIM) |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" %%%LICENSE_END |
| .\" |
| .\" Historical remark, aeb, 2004-06-05 |
| .TH GETUID 2 2019-03-06 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| getuid, geteuid \- get user identity |
| .SH SYNOPSIS |
| .B #include <unistd.h> |
| .br |
| .B #include <sys/types.h> |
| .PP |
| .B uid_t getuid(void); |
| .br |
| .B uid_t geteuid(void); |
| .SH DESCRIPTION |
| .BR getuid () |
| returns the real user ID of the calling process. |
| .PP |
| .BR geteuid () |
| returns the effective user ID of the calling process. |
| .SH ERRORS |
| These functions are always successful. |
| .SH CONFORMING TO |
| POSIX.1-2001, POSIX.1-2008, 4.3BSD. |
| .SH NOTES |
| .SS History |
| In UNIX\ V6 the |
| .BR getuid () |
| call returned |
| .IR "(euid << 8) + uid" . |
| UNIX\ V7 introduced separate calls |
| .BR getuid () |
| and |
| .BR geteuid (). |
| .PP |
| The original Linux |
| .BR getuid () |
| and |
| .BR geteuid () |
| system calls supported only 16-bit user IDs. |
| Subsequently, Linux 2.4 added |
| .BR getuid32 () |
| and |
| .BR geteuid32 (), |
| supporting 32-bit IDs. |
| The glibc |
| .BR getuid () |
| and |
| .BR geteuid () |
| wrapper functions transparently deal with the variations across kernel versions. |
| .PP |
| On Alpha, instead of a pair of |
| .BR getuid () |
| and |
| .BR geteuid () |
| system calls, a single |
| .BR getxuid () |
| system call is provided, which returns a pair of real and effective UIDs. |
| The glibc |
| .BR getuid () |
| and |
| .BR geteuid () |
| wrapper functions transparently deal with this. |
| See |
| .BR syscall (2) |
| for details regarding register mapping. |
| .SH SEE ALSO |
| .BR getresuid (2), |
| .BR setreuid (2), |
| .BR setuid (2), |
| .BR credentials (7) |