ОБЗОР
#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
- Искомый ключ не найден или указан неверный ключ.