long keyctl_link(key_serial_t key, key_serial_t keyring);
long keyctl_unlink(key_serial_t key, key_serial_t keyring);
DESCRIPTIONkeyctl_link() creates a link from keyring to key, displacing any link to another key of the same type and description in that keyring if one exists.
keyctl_unlink() removes the link from keyring to key if it exists.
The caller must have write permission on a keyring to be able create or remove links in it.
The caller must have link permission on a key to be able to create a link to it.
RETURN VALUEOn success keyctl_link() and keyctl_unlink() return 0. On error, the value -1 will be returned and errno will have been set to an appropriate error.
- The key or the keyring specified are invalid.
- The key or the keyring specified have expired.
- The key or the keyring specified have been revoked.
- The keyring exists, but is not writable by the calling process.
For keyctl_link() only:
- Insufficient memory to expand the keyring
- Expanding the keyring would exceed the keyring owner's quota.
- The key exists, but is not linkable by the calling process.