NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON |
|
|
KEYCTL_LINK(2const) KEYCTL_LINK(2const)
KEYCTL_LINK - link a key to a keyring
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_LINK, key_serial_t key, key_serial_t keyring);
Create a link from a keyring to a key. The key to be linked is specified in key; the keyring is specified in keyring. If a key with the same type and description is already linked in the keyring, then that key is displaced from the keyring. Before creating the link, the kernel checks the nesting of the keyrings and returns appropriate errors if the link would produce a cycle or if the nesting of keyrings would be too deep (The limit on the nesting of keyrings is determined by the kernel constant KEYRING_SEARCH_MAX_DEPTH, defined with the value 6, and is necessary to prevent overflows on the kernel stack when recursively searching keyrings). The caller must have link permission on the key being added and write permission on the keyring.
On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.
EDEADLK The requested link would result in a cycle. ELOOP The requested link would cause the maximum nesting depth for keyrings to be exceeded. ENFILE (before Linux 3.13) The keyring is full. (Before Linux 3.13, the available space for storing keyring links was limited to a single page of memory; since Linux 3.13, there is no fixed limit.)
A wrapper is provided in the libkeyutils library: keyctl_link(3).
Linux.
Linux 2.6.10.
keyctl(2), keyctl_link(3), KEYCTL_UNLINK(2const)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.10.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2025-02-02. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.10 2024-08-21 KEYCTL_LINK(2const)
Pages that refer to this page: keyctl(2), KEYCTL_INSTANTIATE(2const), KEYCTL_SEARCH(2const), KEYCTL_SETPERM(2const), KEYCTL_UNLINK(2const)