KEYCTL_SET_REQKEY_KEYRING(2const)

NAME
KEYCTL_SET_REQKEY_KEYRING - set the implicit destination keyring

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_SET_REQKEY_KEYRING, int op);

DESCRIPTION
Set the default keyring to which implicitly requested keys will be linked for this thread, and return the previous setting. Implicit key requests are those made by internal kernel components, such as can occur when, for example, opening files on an AFS or NFS filesystem. Setting the default keyring also has an effect when requesting a key from user space; see request_key(2) for details.

The op argument should contain one of the following values, to specify the new default keyring:

KEY_REQKEY_DEFL_NO_CHANGE
    Don't change the default keyring. This can be used to discover the current default keyring (without changing it).

KEY_REQKEY_DEFL_DEFAULT
    This selects the default behaviour, which is to use the thread-specific keyring if there is one, otherwise the process-specific keyring if there is one, otherwise the session keyring if there is one, otherwise the UID-specific session keyring, otherwise the user-specific keyring.

KEY_REQKEY_DEFL_THREAD_KEYRING
    Use the thread-specific keyring (thread-keyring(7)) as the new default keyring.

KEY_REQKEY_DEFL_PROCESS_KEYRING
    Use the process-specific keyring (process-keyring(7)) as the new default keyring.

KEY_REQKEY_DEFL_SESSION_KEYRING
    Use the session-specific keyring (session-keyring(7)) as the new default keyring.

KEY_REQKEY_DEFL_USER_KEYRING
    Use the UID-specific keyring (user-keyring(7)) as the new default keyring.

KEY_REQKEY_DEFL_USER_SESSION_KEYRING
    Use the UID-specific session keyring (user-session-keyring(7)) as the new default keyring.

KEY_REQKEY_DEFL_REQUESTOR_KEYRING (since Linux 2.6.29)
    Use the requestor keyring.

All other values are invalid.

The setting controlled by this operation is inherited by the child of fork(2) and preserved across execve(2).

RETURN VALUE
On success, the ID of the previous default keyring to which implicitly requested keys were linked (one of KEY_REQKEY_DEFL_USER_*).

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

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

STANDARDS
Linux.

HISTORY
Linux 2.6.13.

SEE ALSO
keyctl(2), keyctl_set_reqkey_keyring(3)