---
name: "KEYCTL_UNLINK"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/KEYCTL_UNLINK"
---

# KEYCTL\_UNLINK(2const)

unlink a key from a keyring

## NAME

KEYCTL\_UNLINK - unlink a key from a keyring

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <linux/keyctl.h>  /* Definition of KEY* constants */
#include <sys/syscall.h>   /* Definition of SYS_* constants */
#include <unistd.h>
```

**long syscall(SYS\_keyctl, KEYCTL\_UNLINK, key\_serial\_t** *key***,**              **key\_serial\_t** *keyring***);**

## DESCRIPTION

Unlink a key from a keyring.

The ID of the key to be unlinked is specified in *key*; the ID of the keyring from which it is to be unlinked is specified in *keyring*.

If the key is not currently linked into the keyring, an error results.

The caller must have *write* permission on the keyring from which the key is being removed.

If the last link to a key is removed, then that key will be scheduled for destruction.

## RETURN VALUE

On success, 0 is returned.

On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **ENOENT**

  The key to be unlinked isn't linked to the keyring.

## VERSIONS

A wrapper is provided in the *libkeyutils* library: [**keyctl\_unlink**(3)](/keyctl_unlink/3.md).

## STANDARDS

Linux.

## HISTORY

Linux 2.6.10.

## SEE ALSO

[**keyctl**(2)](/keyctl/2.md), [**keyctl\_unlink**(3)](/keyctl_unlink/3.md), [**KEYCTL\_LINK**(2const)](/KEYCTL_LINK/2const.md)
