persistent-keyring(7) Miscellaneous Information Manual persistent-keyring(7)

persistent-keyring - inel de chei persistent per utilizator

Inelul de chei persistent este un inel de chei utilizat pentru a ancora chei în numele unui utilizator. Fiecare UID cu care se ocupă nucleul are propriul său inel de chei persistent care este partajat între toate firele de execuție deținute de acel UID. Inelul de chei persistent are un nume (descriere) de forma _persistent.<UID>, unde <UID> este ID-ul de utilizator, al utilizatorului respectiv.

Inelul de chei persistent nu poate fi accesat direct, nici măcar de către procesele cu UID-ul corespunzător. În schimb, acesta trebuie mai întâi să fie legat de unul dintre inelele de chei ale unui proces, înainte ca acel inel de chei să poată accesa inelul de chei persistent în virtutea permiselor de posesie. Această legătură se face cu ajutorul funcției keyctl_get_persistent(3).

În cazul în care un inel de chei persistent nu există atunci când este accesat prin operația keyctl_get_persistent(3), acesta va fi creat automat.

De fiecare dată când se efectuează operația keyctl_get_persistent(3), temporizatorul de expirare al inelului de chei persistent este restabilit la valoarea din:


/proc/sys/kernel/keys/persistent_keyring_expiry

În cazul în care se ajunge la expirarea timpului de așteptare, inelul de chei persistent va fi eliminat, iar tot ceea ce conține poate fi colectat la gunoi. Inelul de chei va fi apoi recreat la un apel ulterior la keyctl_get_persistent(3).

Inelul de chei persistent nu este căutat direct de request_key(2); este căutat numai dacă este legat de unul dintre inelele de chei care sunt căutate de request_key(2).

Inelul de chei persistent este independent de clone(2), fork(2), vfork(2), execve(2) și _exit(2). Persistă până când se declanșează temporizatorul de expirare, moment în care este colectat la gunoi. Acest lucru permite ca inelul de chei persistent să poarte chei dincolo de durata de viață a înregistrării de către nucleu a UID-ului corespunzător (a cărui distrugere duce la distrugerea user-keyring(7) și user-session-keyring(7)). Astfel, inelul de chei persistent poate fi utilizat pentru a păstra jetoanele de autentificare pentru procesele care rulează fără interacțiune cu utilizatorul, cum ar fi programele lansate de cron(8).

Inelul de chei persistent este utilizat pentru a stoca obiecte specifice UID care au la rândul lor o durată de viață limitată (de exemplu, jetoanele Kerberos). În cazul în care aceste jetoane încetează să mai fie utilizate (adică, nu se mai accesează inelul de chei persistent), atunci expirarea timpului de așteptare a inelului de chei persistent asigură eliminarea automată a obiectelor corespunzătoare.

Biblioteca keyutils oferă funcția keyctl_get_persistent(3) pentru manipularea inelelor de chei persistente. (Această funcție este o interfață pentru operația keyctl(2) KEYCTL_GET_PERSISTENT). Această operație permite firului apelant să obțină inelul de chei persistent corespunzător propriului său UID sau, dacă firul are capacitatea CAP_SETUID, inelul de chei persistent corespunzător unui alt UID din același spațiu de nume de utilizator.

Fiecare spațiu de nume de utilizator deține un inel de chei numit .persistent_register care conține legături către toate cheile persistente din acel spațiu de nume. (Inelul de chei .persistent_register poate fi văzut atunci când se citește conținutul fișierului /proc/keys pentru UID 0 din spațiul de nume). Operația keyctl_get_persistent(3) caută o cheie cu un nume de forma _persistent.UID în acel inel de chei, creează cheia, dacă nu există, și o leagă în breloc.

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)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

31 octombrie 2023 Pagini de manual de Linux 6.06