Provided by: manpages-ru_4.19.0-7_all bug

ИМЯ

       persistent-keyring - пользовательская постоянная связка ключей

ОПИСАНИЕ

       Постоянная  связка  ключей  — это связка, используемая для привязки от имени пользователя.
       Для каждого UID ядро создаёт отдельную  постоянную  связку  ключей,  которая  используется
       всеми  нитями,  принадлежащими  этому UID. Постоянная связка ключей имеет имя (описание) в
       виде _persistent.<UID>, <UID> — ID пользователя соответствующего пользователя.

       Прямой доступ к постоянной связке ключей невозможен,  даже  процессам  с  подходящим  UID.
       Вместо  этого  сначала  она  должна  быть прицеплена к одной из связок ключей процесса, до
       этого связка ключей может получить доступ  к  постоянной  связке  ключей  согласно  правам
       своего владельца. Эта связь создаётся с помощью функции keyctl_get_persistent(3).

       Если    постоянная    связка    ключей   не   существует   на   момент   вызова   операции
       keyctl_get_persistent(3), то она автоматически создаётся.

       Each time the keyctl_get_persistent(3)  operation is performed, the  persistent  keyring's
       expiration timer is reset to the value in:

           /proc/sys/kernel/keys/persistent_keyring_expiry

       Should  the  timeout  be reached, the persistent keyring will be removed and everything it
       pins can then be garbage collected.  The keyring will then be re-created on  a  subsequent
       call to keyctl_get_persistent(3).

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

       Постоянная  связка ключей не зависит от clone(2), fork(2), vfork(2), execve(2) и _exit(2).
       Она существует до истечения срока действия таймера, после чего удаляется сборщиком мусора.
       Это позволяет связке ключей хранить ключи дольше жизни ядерной записи соответствующего UID
       (удаление которой приводит к уничтожению user-keyring(7) и user-session-keyring(7)). Таким
       образом,  постоянную  связку ключей можно использовать для хранения токенов аутентификации
       для процессов, которые выполняются без взаимодействия с пользователем, например программы,
       выполняемые cron(8).

       Постоянная  связка  ключей используется для хранения объектов, для UID, которые сами имеют
       ограниченный  срок  жизни  (например,  токены  kerberos).  Если  такие  токены  больше  не
       используются  (т. е., связка ключей недоступна), то срок действия постоянной связки ключей
       позволяет автоматически удалять соответствующие ей объекты.

   Специальные операции
       Библиотека keyutils  для  работы  с  постоянными  связками  ключей  предоставляет  функцию
       keyctl_get_persistent(3)   (эта   функция   является   интерфейсом  к  операции  keyctl(2)
       KEYCTL_GET_PERSISTENT). Данная операция  позволяет  вызывающей  нити  получить  постоянную
       связку  ключей,  соответствующую  её  UID  или,  если  нить  имеет  мандат  CAP_SETUID, то
       постоянная связка ключей соответствует какому-то другому UID в этом же  пространстве  имён
       пользователя.

ЗАМЕЧАНИЯ

       Each  user namespace owns a keyring called .persistent_register that contains links to all
       of the persistent keys in that namespace.  (The .persistent_register keyring can  be  seen
       when  reading  the  contents  of the /proc/keys file for the UID 0 in the namespace.)  The
       keyctl_get_persistent(3)   operation  looks  for  a  key  with  a   name   of   the   form
       _persistent.UID  in  that keyring, creates the key if it does not exist, and links it into
       the keyring.

СМ. ТАКЖЕ

       keyctl(1), keyctl(3), keyctl_get_persistent(3), keyrings(7), process-keyring(7),
       session-keyring(7), thread-keyring(7), user-keyring(7), user-session-keyring(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov
       <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Kogan, Max Is
       <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.