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

persistent-keyring - benutzerbezogener dauerhafter Schlüsselbund

Der dauerhafte Schlüsselbund ist ein Schlüsselbund, der im Auftrag von Benutzern zur Verankerung von Schlüsseln verwandt wird. Jede UID, mit der der Kernel umgeht, hat ihren eigenen dauerhaften Schlüsselbund, der von allen Threads, die der UID gehören, gemeinsam verwandt wird. Der dauerhafte Schlüsselbund hat einen Namen (die Beschreibung) der Form _persistent.<UID>, wobei <UID> die Benutzerkennung des entsprechenden Benutzers ist.

Auf den dauerhaften Schlüsselbund kann nicht direkt zugegriffen werden, auch nicht von Prozessen mit der geeigneten UID. Stattdessen muss er erst mit einem der Schlüsselbunde des Prozesses verbunden werden, bevor dieser Schlüsselbund auf den dauerhaften Schlüsselbund gemäß den Berechtigungen des Eigentümers zugreifen kann. Diese Verbindung erfolgt mit der Funktion keyctl_get_persistent(3).

Falls ein dauerhafter Schlüsselbund beim Zugriff mit der Aktion keyctl_get_persistent(3) nicht existiert, wird er automatisch erstellt.

Jedes mal, wenn die Aktion keyctl_get_persistent(3) durchgeführt wird, wird der Ablaufzeitmesser des dauerhaften Schlüsselbundes zurückgesetzt auf den Wert in:


/proc/sys/kernel/keys/persistent_keyring_expiry

Sollte die Zeitüberschreitung erreicht werden, wird der dauerhafte Schlüsselbund entfernt und alles, was er befestigt, kann entsorgt werden. Der Schlüsselbund wird dann bei nachfolgenden Aufrufen von keyctl_get_persistent(3) wieder erstellt.

Der dauerhafte Schlüsselbund wird durch request_key(2) nicht direkt durchsucht; er wird nur durchsucht, falls er mit einem der Schlüsselbunde verbunden ist, die von request_key(2) durchsucht werden.

Der dauerhafte Schlüsselbund ist unabhängig von clone(2), fork(2), vfork(2), execve(2) und _exit(2). Er verbleibt, bis seine Ablaufzeitüberschreitung ausgelöst wird, dann wird er entfernt. Dies ermöglicht es dauerhaften Schlüsselbunden, Schlüssel über das Ende der Lebensdauer des Kernel-Datensatzes der entsprechenden UID zu transportieren (bei dessen Zerstörung auch der user-keyring(7) und der user-session-keyring(7) zerstört wird). Der dauerhafte Schlüsselbund kann daher dazu verwandt werden, Authentifizierungsmerkmale für Prozesse zu halten, die ohne Benutzerinteraktion laufen, wie durch cron(8) gestartete Programme.

Der dauerhafte Schlüsselbund wird zum Speichern UID-spezifischer Objekte verwandt, die selbst nur begrenzte Lebensdauern haben (z.B. Kerberos-Token). Falls diese Token nicht mehr verwandt werden (z.B. auf den dauerhaften Schlüsselbund nicht mehr zugegriffen wird), dann stellt die Zeitüberschreitung des dauerhaften Schlüsselbundes sicher, dass die entsprechenden Objekte automatisch verworfen werden.

Die Bibliothek keyutils stellt die Funktion keyctl_get_persistent(3) zur Bearbeitung dauerhafter Schlüsselbunde bereit. (Diese Funktion ist eine Schnittstelle zu der Aktion keyctl(2) KEYCTL_GET_PERSISTENT). Diese Aktion ermöglicht es dem aufrufenden Thread, einen dauerhaften Schlüsselbund entsprechend seiner eigenen UID oder, falls der Thread über die Capability CAP_SETUID verfügt, den dauerhaften Schlüsselbund entsprechend einer anderen UID in dem gleichen Benutzernamensraum zu erlangen.

Jeder Benutzernamensraum besitzt einen Schlüsselbund namens .persistent_register, der Verweise auf alle dauerhaften Schlüssel in diesem Namensraum enthält. (Der Schlüsselbund .persistent_register kann durch Lesen der Inhalte der Datei /proc/keys für die UID 0 in diesem Namensraum gesehen werden.) Die Aktion keyctl_get_persistent(3) sucht nach einem Schlüssel mit einem Namen der Form _persistent.UID in diesem Schlüsselbund, erstellt diesen Schlüssel, falls er nicht existiert, und verbindet ihn mit dem Schlüsselbund.

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)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

31. Oktober 2023 Linux man-pages 6.06