keyctl_set_reqkey_keyring - set the implicit destination keyring
#include <keyutils.h>
long keyctl_set_reqkey_keyring(int reqkey_defl);
keyctl_set_reqkey_keyring() sets the default destination for implicit key
requests for the current thread and returns the old setting.
After this operation has been issued, keys acquired by implicit key requests,
such as might be performed by
open() on an AFS or NFS filesystem, will
be linked by default to the specified keyring by this function.
The valid values of
reqkey_defl are:
- KEY_REQKEY_DEFL_NO_CHANGE
- This makes no change to the current setting.
- KEY_REQKEY_DEFL_THREAD_KEYRING
- This makes the thread-specific keyring the default
destination.
- KEY_REQKEY_DEFL_PROCESS_KEYRING
- This makes the process-specific keyring the default
destination.
- KEY_REQKEY_DEFL_SESSION_KEYRING
- This makes the session keyring the default
destination.
- KEY_REQKEY_DEFL_USER_KEYRING
- This makes the UID-specific keyring the default
destination.
- KEY_REQKEY_DEFL_USER_SESSION_KEYRING
- This makes the UID-specific session keyring the default
destination.
- 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.
This setting is inherited across
fork() and
exec().
On success
keyctl_set_reqkey_keyring() returns the serial number of the
keyring which was the previous default for the current thread. On error, the
value
-1 will be returned and
errno will have been set to an
appropriate error.
- EINVAL
- The value of reqkey_defl is invalid.
This is a library function that can be found in
libkeyutils. When
linking,
-lkeyutils should be specified to the linker.
keyctl(1),
add_key(2),
keyctl(2),
request_key(2),
keyctl(3),
keyutils(7),
keyrings(7),
request-key(8)