USER-KEYRING(7)

ИМЯ
user-keyring - пользовательская связка ключей

ОПИСАНИЕ
Пользовательская связка ключей используется для хранения ключей пользователя. Для каждого UID у ядра есть своя связка ключей пользователя, которая доступна из всех процессов с этим UID. Пользовательская связка ключей имеет имя (описание) в виде _uid.<UID>, где <UID> идентификатор пользователя соответствующего пользователя.

Пользовательская связка ключей связана с записью, которая обслуживается ядром для UID. Она начинает существовать при попытке первого обращения к пользовательской связке ключей, к user-session-keyring(7) или к session-keyring(7). Связка ключей существует привязанной всё время пока выполняются процессы с этим реальным UID или остаются открытыми файлы, открытые этими процессами (связка ключей также может быть привязана бесконечно, если её прицепить к другой связке ключей).

Обычно, пользовательская связка ключей создаётся pam_keyinit(8) при входе пользователя в систему.

По умолчанию в пользовательской связке ключей вызов request_key(2) не производит поиск. Когда pam_keyinit(8) создаёт связку ключей сеанса, он добавляет в неё пользовательскую связку ключей, и таким образом поиск выполняется в пользовательской связке ключей, если происходит поиск в связке ключей сеанса.

Существует специальный серийный номер, KEY_SPEC_USER_KEYRING, который можно указывать вместо реального серийного номера пользовательской связки ключей вызывающего процесса.

В утилите keyctl(1) подобным образом можно использовать «@u» вместо числового идентификатора ключа.

Пользовательские связки ключей не зависят от clone(2), fork(2), vfork(2), execve(2) и _exit(2) за исключением того, что эта связка ключей уничтожается когда запись UID уничтожается при завершении последнего привязанного процесса.

Если нужно, чтобы ключ, связанный с пользователем, существовал и после сбора мусорщиком записи UID — например, для сценария cron(8) — то должна быть использована persistent-keyring(7).

Если связка ключей пользователя не существует на момент доступа, то она создаётся.

СМОТРИТЕ ТАКЖЕ
keyctl(1), keyctl(3), keyrings(7), persistent-keyring(7), process-keyring(7), session-keyring(7), thread-keyring(7), user-session-keyring(7), pam_keyinit(8)