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.