KEYCTL_JOIN_SESSION_KEYRING(2const)

NAME
KEYCTL_JOIN_SESSION_KEYRING - replace the session keyring this process subscribes to with a new one

LIBRARY
Standard C library (libc, -lc)

SYNOPSIS
#include <linux/keyctl.h>  /* Definition of KEY* constants */
#include <sys/syscall.h>   /* Definition of SYS_* constants */
#include <unistd.h>

long syscall(SYS_keyctl, KEYCTL_JOIN_SESSION_KEYRING,
             char *_Nullable desc);

DESCRIPTION
Replace the session keyring this process subscribes to with a new session keyring.

If desc is NULL, an anonymous keyring with the description "_ses" is created and the process is subscribed to that keyring as its session keyring, displacing the previous session keyring.

Otherwise, desc is treated as the description (name) of a keyring, and the behavior is as follows:

•   If a keyring with a matching description exists, the process will attempt to subscribe to that keyring as its session keyring if possible; if that is not possible, an error is returned. In order to subscribe to the keyring, the caller must have search permission on the keyring.

•   If a keyring with a matching description does not exist, then a new keyring with the specified description is created, and the process is subscribed to that keyring as its session keyring.

RETURN VALUE
On success, the ID of the joined session keyring.

On error, -1 is returned, and errno is set to indicate the error.

VERSIONS
A wrapper is provided in the libkeyutils library: keyctl_join_session_keyring(3).

STANDARDS
Linux.

HISTORY
Linux 2.6.10.

SEE ALSO
keyctl(2), keyctl_join_session_keyring(3)