USER-SESSION-KEYRING(7)

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

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

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

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

В пользовательской сеансовой связке ключей выполняется поиск request_key(2), если не существует реальная связка ключей сеанса и не выполняется в противном случае.

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

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

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

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

Лучше не полагаться на пользовательскую сеансовую связку ключей; настоятельно рекомендуется, особенно если процесс выполняется с правами суперпользователя, задавать session-keyring(7) явным образом, например с помощью pam_keyinit(8).

ЗАМЕЧАНИЯ
Поддержка пользовательской сеансовой связки ключей была добавлена для ситуаций, когда процесс не имеет сеансовой связки ключей, возможно из-за того, что был создан способом, не включающим PAM (например, служба, запущенная inetd(8)). В этом случае, пользовательская сеансовая связка ключей подставляется вместо session-keyring(7).

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