Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   keyctl - работа с системой управления ключами ядра

keyctl(2) работа с системой управления ключами ядра


ОБЗОР

#include <keyutils.h>


long keyctl(int cmd, ...);


ОПИСАНИЕ

Вызов keyctl() выполняет несколько функций:

KEYCTL_GET_KEYRING_ID Запрашивает идентификатор связки ключей.

KEYCTL_JOIN_SESSION_KEYRING Подсоединяется или запускает именованную сеансовую связку ключей.

KEYCTL_UPDATE Обновляет ключ.

KEYCTL_REVOKE Отзывает ключ.

KEYCTL_CHOWN Назначает владельца ключа.

KEYCTL_SETPERM Назначает права на ключ.

KEYCTL_DESCRIBE Описывает ключ.

KEYCTL_CLEAR Стирает содержимое связки ключей.

KEYCTL_LINK Цепляет ключ в связку ключей.

KEYCTL_UNLINK Отцепляет ключ от связки ключей.

KEYCTL_SEARCH Ищет ключ в связке ключей.

KEYCTL_READ Читает содержимое ключа или связки ключей.

KEYCTL_INSTANTIATE Создаёт (Instantiate) частично сконструированный ключ.

KEYCTL_NEGATE Удаляет (Negate) частично сконструированный ключ.

KEYCTL_SET_REQKEY_KEYRING Назначает связку ключей request-key по умолчанию.

KEYCTL_SET_TIMEOUT Назначает время ожидания ключа.

KEYCTL_ASSUME_AUTHORITY Допускает полномочие создания ключа.

На базе этих операций в libkeyutils созданы отдельные функции, что позволяет проверять типы с помощью компилятора. Обратитесь к разделу Смотрите также ниже.


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении keyctl() возвращается серийный номер найденного ключа. В случае ошибки возвращается значение -1, а в errno устанавливается код соответствующей ошибки.


ОШИБКИ

EACCES Операция с ключом не разрешена.

EDQUOT Квота на ключи для данного пользователя была бы превышена, если бы этот ключ создался или был бы прицеплен в связку ключей.

EKEYEXPIRED Найден или указан просроченный ключ.

EKEYREJECTED Найден или указан отклонённый (rejected) ключ.

EKEYREVOKED Найден или указан отозванный ключ.

ENOKEY Искомый ключ не найден или указан неверный ключ.

КОМПОНОВКА

Хотя это и системный вызов Linux, его нет в libc, но его можно найти в libkeyutils. При сборке программы компоновщику нужно указать параметр -lkeyutils.