keyctl_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 VALUE
On 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.
ERRORS
ENOKEY
The key or the keyring specified are invalid.
EKEYEXPIRED
The key or the keyring specified have expired.
EKEYREVOKED
The key or the keyring specified have been revoked.
EACCES
The keyring exists, but is not
writable
by the calling process.
For
keyctl_link()
only:
ENOMEM
Insufficient memory to expand the keyring
EDQUOT
Expanding the keyring would exceed the keyring owner's quota.
EACCES
The key exists, but is not
linkable
by the calling process.
LINKING
This is a library function that can be found in
libkeyutils.
When linking,
-lkeyutils
should be specified to the linker.