table of contents
KEYCTL(2) | Вызовы системы управления ключами Linux | KEYCTL(2) |
ИМЯ¶
keyctl - работа с системой управления ключами ядра
ОБЗОР¶
#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.
СМОТРИТЕ ТАКЖЕ¶
keyctl(1),
add_key(2),
request_key(2),
keyctl_get_keyring_ID(3),
keyctl_join_session_keyring(3),
keyctl_update(3),
keyctl_revoke(3),
keyctl_chown(3),
keyctl_setperm(3),
keyctl_describe(3),
keyctl_clear(3),
keyctl_link(3),
keyctl_unlink(3),
keyctl_search(3),
keyctl_read(3),
keyctl_instantiate(3),
keyctl_negate(3),
keyctl_set_reqkey_keyring(3),
keyctl_set_timeout(3),
keyctl_assume_authority(3),
keyctl_describe_alloc(3),
keyctl_read_alloc(3),
request-key(8)
2010-02-25 | Linux |