KEYCTL_JOIN_SESSION_KEYRING − replace the session keyring this process subscribes to with a new one
Standard C library (libc, −lc)
#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);
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. |
On success, the ID of the joined session keyring.
On error, −1 is returned, and errno is set to indicate the error.
A wrapper is provided in the libkeyutils library: keyctl_join_session_keyring(3).
Linux.
Linux 2.6.10.
keyctl(2), keyctl_join_session_keyring(3)