getpeereid(3)
Canonical URL: /getpeereid.3/
NAME
getpeereid —
get effective user and group
identification of locally-connected peer
SYNOPSIS
#include
<sys/types.h>
#include <sys/socket.h>
int
getpeereid(int
s, uid_t *euid,
gid_t *egid);
DESCRIPTION
getpeereid()
returns the effective user ID and group ID of the peer connected to a
Unix-domain socket (see
unix(4)). The argument
s must be of type SOCK_STREAM
or SOCK_SEQPACKET.
One common use is for Unix-domain servers to determine the credentials of clients that have connected to it.
getpeereid()
takes three parameters:
- s contains the file descriptor of the socket whose peer credentials should be looked up.
- euid points to a uid_t variable into which the effective user ID for the connected peer will be stored.
- egid points to a gid_t variable into which the effective group ID for the connected peer will be stored.
RETURN VALUES
If the call succeeds, a 0 is returned and euid and egid are set to the effective user ID and group ID of the connected peer. Otherwise, errno is set and a value of -1 is returned.
ERRORS
On failure, errno is set to one of the following:
- [
EBADF] - The argument s is not a valid descriptor.
- [
ENOTSOCK] - The argument s is a file, not a socket.
- [
EOPNOTSUPP] - The socket is not in the Unix-domain.
- [
ENOTCONN] - The socket is not connected.
- [
ENOBUFS] - Insufficient resources were available in the system to perform the operation.
SEE ALSO
accept(2), bind(2), getpeername(2), getsockname(2), getsockopt(2), socket(2), unix(4)
HISTORY
The getpeereid() function call appeared in
OpenBSD 3.0.
Need conceptual guidance? Continue in the OpenBSD Handbook.