KEYUTILS(7) Kernel key management KEYUTILS(7)

# [NAME](#NAME)

keyutils - in-kernel key management utilities

# [DESCRIPTION](#DESCRIPTION)

The **keyutils** package is a library and a set of utilities for accessing the kernel **keyrings** facility.

A header file is supplied to provide the definitions and declarations required to access the library:

**#include &lt;keyutils.h&gt;**

To link with the library, the following:

**-lkeyutils**

should be specified to the linker.

Three system calls are provided:

[**add\_key**(2)](/man/os/keyutils/add_key.2)

Supply a new key to the kernel.

[**request\_key**(2)](/man/os/keyutils/request_key.2)

Find an existing key for use, or, optionally, create one if one does not exist.

[**keyctl**(2)](/man/os/keyutils/keyctl.2)

Control a key in various ways. The library provides a variety of wrappers around this system call and those should be used rather than calling it directly.

See the [**add\_key**(2)](/man/os/keyutils/add_key.2), [**request\_key**(2)](/man/os/keyutils/request_key.2), and [**keyctl**(2)](/man/os/keyutils/keyctl.2) manual pages for more information.

The **keyctl**() wrappers are listed on the [**keyctl**(3)](/man/os/keyutils/keyctl.3) manual page.

# [UTILITIES](#UTILITIES)

A program is provided to interact with the kernel facility by a number of subcommands, e.g.:

**keyctl add user foo bar @s**

See the [**keyctl**(1)](/man/os/keyutils/keyctl.1) manual page for information on that.

The kernel has the ability to upcall to userspace to fabricate new keys. This can be triggered by **request\_key**(), but userspace is better off using **add\_key**() instead if it possibly can.

The upcalling mechanism is usually routed via the [**request-key**(8)](/man/os/keyutils/request-key.8) program. What this does with any particular key is configurable in:

*/etc/request-key.conf*  
*/etc/request-key.d/*

See the [**request-key.conf**(5)](/man/os/keyutils/request-key.conf.5) and the [**request-key**(8)](/man/os/keyutils/request-key.8) manual pages for more information.

# [SEE ALSO](#SEE_ALSO)

[**keyctl**(1)](/man/os/keyutils/keyctl.1), [**keyctl**(3)](/man/os/keyutils/keyctl.3), [**keyrings**(7)](/man/os/keyutils/keyrings.7), [**persistent-keyring**(7)](/man/os/keyutils/persistent-keyring.7), [**process-keyring**(7)](/man/os/keyutils/process-keyring.7), [**session-keyring**(7)](/man/os/keyutils/session-keyring.7), [**thread-keyring**(7)](/man/os/keyutils/thread-keyring.7), [**user-keyring**(7)](/man/os/keyutils/user-keyring.7), [**user-session-keyring**(7)](/man/os/keyutils/user-session-keyring.7), [**pam\_keyinit**(8)](/man/os/keyutils/pam_keyinit.8)

21 Feb 2014 Linux

---

Document: keyutils(7) from keyutils 1.6.3-r40 (Chainguard OS)
Source: https://kernel.googlesource.com/pub/scm/linux/kernel/git/dhowells/keyutils.git
