TMPFILES.D(5) tmpfiles.d TMPFILES.D(5) BEZEICHNUNG tmpfiles.d - Konfiguration fur die Erstellung, Loschung und Bereinigung von Dateien und Verzeichnissen UBERSICHT /etc/tmpfiles.d/*.conf /run/tmpfiles.d/*.conf /usr/local/lib/tmpfiles.d/*.conf /usr/lib/tmpfiles.d/*.conf ~/.config/user-tmpfiles.d/*.conf $XDG_RUNTIME_DIR/user-tmpfiles.d/*.conf ~/.local/share/user-tmpfiles.d/*.conf /usr/local/share/user-tmpfiles.d/*.conf /usr/share/user-tmpfiles.d/*.conf #Typ Pfad Modus Benutzer Gruppe Alter Argument f /Datei/zu/erstellen Modus Benutzer Gruppe - Inhalt f+ /Datei/zu/erstellen-oder-abzuschneiden Modus Benutzer Gruppe - Inhalt w /Datei/zu/hineinschreiben - - - - Inhalt w+ /Datei/zu/anzuhangen - - - - Inhalt d /Verzeichnis/zu/erstellen-und-aufzuraumen Modus Benutzer Gruppe Aufraumalter - D /Verzeichnis/zu/erstellen-und-entfernen Modus Benutzer Gruppe Aufraumalter - e /Verzeichnis/zu/aufzuraumen Modus Benutzer Gruppe Aufraumalter - v /Teildatentrager-oder-Verzeichnis/zu/erstellen Modus Benutzer Gruppe Aufraumalter - q /Teildatentrager-oder-Verzeichnis/zu/erstellen Modus Benutzer Grpppe Aufraumalter - Q /Teildatentrager-oder-Verzeichnis/zu/erstellen Modus Benutzer Gruppe Aufraumalter - p /FIFO/zu/erstellen Modus Benutzer Gruppe - - p+ /FIFO/(neu)zu/erstellen Modus Benutzer Gruppe - - L /Symlink/zu/erstellen - - - - Symlink/Ziel/Pfad L+ /Symlink/(neu)zu/erstellen - - - - Symlink/Ziel/Pfad c /dev/zeichenorientiertes-Gerat-zu-erstellen Modus Benutzer Gruppe - major:minor c+ /dev/zeichenorientiertes-Gerat-(neu)zu-erstellen Modus Benutzer Gruppe - major:minor b /dev/Blockgerat-zu-erstellen Modus Benutzer Gruppe - major:minor b+ /dev/Blockgerat-(neu)zu-erstellen Modus Benutzer Gruppe - major:minor C /Ziel/zu/erstellen - - - Aufraumalter /Quelle/zu/kopieren C+ /Ziel/zu/erstellen - - - Aufraumalter /Quelle/zu/kopieren x /Pfad-oder-Glob/zu/ignorieren/rekursiv - - - Aufraumalter - X /Pfad-oder-Glob/zu/ignorieren - - - Aufraumalter - r /Pfad-oder-Glob/zu/entfernen - - - - - R /Pfad-oder-Glob/zu/entfernen/rekursiv - - - - - z /Pfad-oder-Glob/zu/anpassen/Modus Modus Benutzer Gruppe - - Z /Pfad-oder-Glob/zu/anpassen/Modus/rekursiv Modus Benutzer Gruppe - - t /Pfad-oder-Glob/zu/setzen/Xattrs - - - - Xattrs T /Pfad-oder-Glob/zu/setzen/Xattrs/rekursiv - - - - Xattrs h /Pfad-oder-Glob/zu/setzen/Attrs - - - - Datei-Attrs H /Pfad-oder-Glob/zu/setzen/Attrs/rekursiv - - - - Datei-Attrs a /Pfad-oder-Glob/zu/setzen/ACLs - - - - POSIX ACLs a+ /Pfad-oder-Glob/zu/anzuhangen/ACLs - - - - POSIX ACLs A /Pfad-oder-Glob/zu/setzen/ACLs/rekursiv - - - - POSIX ACLs A+ /Pfad-oder-Glob/zu/anzuhangen/ACLs/rekursiv - - - - POSIX ACLs BESCHREIBUNG tmpfiles.d-Konfigurationsdateien bieten einen generischen Mechanismus an, um die Erstellung regularer Dateien, Verzeichnisse, Pipes und Gerateknoten, Anpassungen ihres Zugriffsmodus, ihrer Eigentumerschaft, Attribute, Kontingente, Zuweisungen und ihres Kontextes und schliesslich ihrer zeitbasierten Entfernung zu definieren. Es wird am haufigsten fur fluchtige und temporare Dateien und Verzeichnisse benutzt (wie solchen, die sich unterhalb von /run/, /tmp/, /var/tmp/, den API-Dateisystemen wie /sys/ oder /proc/, sowie einigen anderen Verzeichnissen unterhalb von /var/ befinden). systemd-tmpfiles(8) verwendet diese Konfiguration, um wahrend des Systemstarts und nachfolgenden periodischen Bereinigungen fluchtige Dateien und Verzeichnisse zu erstellen. Siehe systemd-tmpfiles(8) fur eine Beschreibung von systemd-tmpfiles-setup.service, systemd-tmpfiles-clean.service und zugehorigen Units. System-Daemons benotigen haufig private Laufzeitverzeichnisse unterhalb von /run/, um Kommunikations-Sockets und ahnliches abzuspeichern. Dafur sollte besser RuntimeDirectory= in ihren Unit-Dateien verwandt werden (siehe systemd.exec(5) fur Details), falls die durch tmpfiles.d bereitgestellte Flexibilitat nicht benotigt wird. Der Vorteil ist, dass die durch die Unit benotigte Konfiguration an einer Stelle zentralisiert ist und dass die Lebensdauer des Verzeichnisses an die Lebensdauer des Dienstes selbst gekoppelt ist. Ahnlich sollten StateDirectory=, CacheDirectory=, LogsDirectory= und ConfigurationDirectory= zur Erstellung von Verzeichnisse unterhalb von /var/lib/, /var/cache/, /var/log/ und /etc/ verwandt werden. tmpfiles.d sollte fur Dateien verwandt werden, deren Lebensdauer unabhangig von irgendeinem Dienst ist oder die kompliziertere Konfiguration benotigen. KONFIGURATIONSVERZEICHNISSE UND RANGFOLGE Jede Konfigurationsdatei muss in der Art Paket.conf oder Paket-Teil.conf benannt werden. Die zweite Variante sollte genutzt werden, wenn es wunschenswert ist, es leicht zu machen, nur diesen Teil der Konfiguration ausser Kraft zu setzen. Dateien in /etc/tmpfiles.d setzen Dateien mit dem gleichen Namen in /usr/lib/tmpfiles.d und /run/tmpfiles.d ausser Kraft. Dateien in /run/tmpfiles.d setzen Dateien mit dem gleichen Namen in /usr/lib/tmpfiles.d ausser Kraft. Pakete sollten ihre Konfigurationsdateien in /usr/lib/tmpfiles.d installieren. Dateien in /etc/tmpfiles.d sind fur den lokalen Administrator reserviert, der diese Logik dazu verwenden kann, um vom Lieferanten installierte Pakete ausser Kraft zu setzen. Alle Konfigurationsdateien werden in lexikographischer Reihenfolge nach ihrem Dateinamen sortiert, unabhangig davon, in welchem der Verzeichnisse sie sich befinden. Falls mehrere Dateien den gleichen Pfad festlegen, wird der Eintrag in der Datei mit dem lexikographisch kleinsten Namen angewandt. (Beachten Sie, dass aufgrund >>!<< unterdruckte Zeilen vor jeder Anwendung gefiltert werden, was bedeutet, dass eine spatere Zeile, die auf einen Pfad passt, angewandt wird, falls eine fruhrere Zeile das Ausrufezeichen tragt und daher unterdruckt wird.) Alle anderen im Konflikt stehenden Eintrage werden als Fehler protokolliert. Wenn zwei Zeilen Prafix- und Suffixpfad von dem jeweils anderen sind, wird das Prafix zuerst, das Suffix spater erstellt (und falls das Entfernen fur die Zeile gilt, ist die Reihenfolge umgedreht: das Suffix wird zuerst entfernt, das Prafix spater). Zeilen, die Globs akzeptieren werden nach solchen, die keine Globs akzeptieren, verarbeitet. Falls mehrere Aktionen auf die gleiche Datei angewandt werden sollen (wie ACL, Xattr, Dateiatributsanpassungen), werden diese immer in der gleichen festen Reihenfolge vorgenommen. Ausser fur diese Falle werden die Dateien/Verzeichnisse in der Reihenfolge verarbeitet, in der sie aufgefuhrt sind. Falls der Administrator eine vom Lieferanten bereitgestellte Konfigurationsdatei ausser Kraft setzen mochte, wird empfohlen, einen Symlink auf /dev/null in /etc/tmpfiles.d/, der den gleichen Dateinamen tragt, anzulegen. KONFIGURATIONSDATEIFORMAT Das Konfigurationsformat ist eine Zeile pro Pfad und enthalt Typ-, Pfad-, Modus-, Eigentumerschaft-, Alter- und Argumentfelder. Die Zeilen werden durch Zeilenumbruche, die Felder durch Leerraumzeichen getrennt: #Typ Pfad Modus Benutzer Gruppe Alter Argument d /run/user 0755 root root 10d - L /tmp/foobar - - - - /dev/null Felder konnen C-artige Maskierungen enthalten. Mit Ausnahme des siebten Feldes (dem >>Argument<<) konnen alle Felder in englische Anfuhrungszeichen eingeschlossen werden. Beachten Sie, dass samtliche Leerraumzeichen, die in der Zeile nach dem Anfang des Argumentenfeldes angetroffen werden, als Teil des Argumentenfeldes angesehen werden. Um das Argumentenfeld mit einem Leerraumzeichen zu beginnen, verwenden Sie C-artige Maskierungen (z.B. >>\x20<<). Typ Der Typ besteht aus einem einzelnen Buchstaben und optional einem oder mehreren Modifikatorzeichen: einem Plus-Zeichen (>>+<<), Ausrufezeichen (>>!<<), Minuszeichen (>>-<<), Gleichheitszeichen (>>=<<), Tildezeichen (>>~<<) und/oder Zirkumflex (>>^<<). Die folgenden Zeilentypen werden verstanden: f, f+ f erstellt eine Datei, falls sie noch nicht existiert. Falls der Argumentparameter angegeben ist und die Datei noch nicht existierte, wird er in die Datei geschrieben. f+ erstellt eine Datei oder schneidet sie ab. Falls der Argumentparameter angegeben ist, wird er in die Datei geschrieben. Folgt keinen Symlinks. w, w+ Schreibt den Argumentparameter in eine Datei, falls die Datei existiert. Falls ein + angehangt ist, wird die Zeile an die Datei angehangt. Falls Ihre Konfiguration mehrere Zeilen in die gleiche Datei schreibt, verwenden Sie w+. Zeilen dieses Typs akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Der Argumentparameter wird ohne abschliessenden Zeilenumbruch geschrieben. C-artige Ruckwartsschragstrichmaskierungen werden interpretiert. Folgt Symlinks. d Erstellt ein Verzeichnis. Der Modus und die Eigentumerschaft werden angepasst, falls angegeben. Inhalte dieses Verzeichnisses unterliegen einer zeitbasierten Bereinigung, falls das Argument >>Alter<< festgelegt ist. D Ahnlich zu d, aber zusatzlich werden die Inhalte des Verzeichnisses entfernt, wenn --remove verwandt wird. e Passt den Modus und die Eigentumerschaft eines bestehenden Verzeichnisses an und entfernt altersbasiert die Inhalte darin. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Inhalte dieser Verzeichnisse unterliegen zeitbasierter Bereinigung, falls das Argument >>Alter<< festgelegt ist. Falls das Argument >>Alter<< >>0<< ist, werden die Inhalte bei jedem Aufruf von systemd-tmpfiles(8) --clean bedingungslos geloscht. Damit dieser Eintrag nutzlich ist, muss mindestens eines der Argumente Modus, Benutzer, Gruppe oder Alter festgelegt sein, da andernfalls dieser Eintrag keinen Effekt hat. Als Ausnahme kann ein Eintrag ohne Effekt bei der Kombination mit ! nutzlich sein, siehe Beispiele. Hinzugefugt in Version 230. v Erstellt einen Teildatentrager, falls der Pfad noch nicht existiert, das Dateisystem Teildatentrager unterstutzt (Btrfs) und das System selbst in einen Teildatentrager installiert ist (konkret: das Wurzelverzeichnis / ist selbst ein Teildatentrager). Andernfalls wird wie bei d ein normales Verzeichnis erstellt. Ein mit diesem Zeilentyp erstellter Teildatentrager wird keiner abstrakteren Kontingentgruppe zugeordnet. Verwenden Sie dafur q oder Q, die die Erstellung einfacher Kontingentgruppenhierarchien erlauben, siehe unten. Hinzugefugt in Version 219. q Erstellt wie bei v einen Teildatentrager oder Verzeichnis, weist den Teildatentrager aber der gleichen abstrakteren Kontingentgruppe wie dem Eltern-Teildatentrager zu. Dies stellt sicher, dass abstraktere Begrenzungen und Buchfuhrungen auf den Eltern-Teildatentrager auch den angegebenen Teildatentrager einschliessen. Auf von Btrfs verschiedenen Dateisystemen ist diese Zeile zu d identisch. Falls der Teildatentrager bereits existiert, erfolgen an der Kontingenthierarchie keine Anderungen, unabhangig davon, ob der Teildatentrager bereits an die Kontingentgruppe angehangt ist. Siehe auch Q unten. Siehe btrfs-qgroup(8) fur Details uber das Btrfs-Kontingentgruppenkonzept. Hinzugefugt in Version 228. Q Erstellt wie bei v einen Teildatentrager oder ein Verzeichnis, weist dem neuen Teildatentrager eine neue Blatt-Kontingentgruppe zu. Statt wie bei q die abstraktere Kontingentgruppenzuweisung vom Eltern-Teildatentrager zu kopieren, wird die niedrigste Kontingentgruppe des Eltern-Teildatentragers bestimmt, die nicht in der Blatt-Kontingentgruppe ist. Dann wird eine >>Zwischen<<-Kontingentgruppe eingefugt, die eine Stufe unterhalb dieser Stufe ist und sich den Kennungsteil mit dem angegebenen Teildatentrager teilt. Falls keine abstraktere Kontingentgruppe fur den Eltern-Teildatentrager existiert, wird stattdessen eine neue Kontingentgruppe auf Stufe 255 eingefugt, die die gleiche Kennung wie der angegebene Teildatentrager hat. Diese neue Zwischenkontingentgruppe wird dann der abstrakten Kontingentgruppe des Eltern-Teildatentragers zugewiesen und die festgelegte Blatt-Kontingentgruppe des Teildatentragers wird dieser zugewiesen. Effektiv hat dies eine ahnliche Wirkung wie q, fuhrt allerdings eine neue abstrakte Kontingentgruppe fur den angegebenen Teildatentrager ein, die zum Durchsetzen von Begrenzungen und Buchfuhrungen fur den angegebenen Teildatentrager und innerhalb darin erstellter Kinder-Teildatentrager verwandt werden kann. Werden daher Teildatentrager nur mittels q und Q erstellt, wird ein >>Unterbaumkontingente<<-Konzept implementiert. Fur jeden Teildatentrager, fur das Q gesetzt ist, wird eine >>Unterbaum<<-Kontingentgruppe erstellt und alle darin erstellten Kinder-Teildatentrager werden ihr zugewiesen. Jeder Teildatentrager, fur den q gesetzt ist, wird keine solche >>Unterbaum<<-Kontingentgruppe erhalten, aber es wird sichergestellt, dass er zu der gleichen >>Unterbaum<<-Kontingentgruppe wie sein direkter Eltern-Teildatentrager zugewiesen wird. Es wird empfohlen, Q fur Teildatentrager zu verwenden, die typischerweise weitere Teildatentrager enthalten und bei denen es wunschenswert ist, Buchfuhrung und Kontingentbegrenzungen auf allen Kind-Teildatentrager zusammen zu haben. Beispiele fur Q sind typischerweise /home/ oder /var/lib/machines/. q sollte dagegen fur Teildatentrager verwandt werden, die entweder normalerweise keine weiteren Teildatentrager enthalten oder bei denen keine Buchfuhrung und Kontingentbegrenzungen benotigt werden, die auf alle Kind-Teildatentrager zusammen angewandt werden sollen. Beispiele fur q sind typischerweise /var/ oder /var/tmp/. Wie mit q hat Q keine Wirkung auf die Kontingentgruppenhierarchie, falls der Teildatentrager bereits existiert, unabhangig davon, ob der Teildatentrager bereits zu der Kontingentgruppe gehort. Hinzugefugt in Version 228. p, p+ Erstellt eine benannte Pipe (FIFO), falls sie noch nicht existiert. Falls + angehangt ist und eine Datei bereits existiert, wo die Pipe erstellt werden soll, wird sie entfernt und durch die Pipe ersetzt. L, L+ Erstellt einen Symlink, falls er noch nicht existiert. Falls + angehangt ist und eine Datei bereits existiert, wo der Symlink erstellt werden soll, wird sie entfernt und durch den Symlink ersetzt. Falls das Argument nicht angegeben wird werden Symlinks auf Dateien mit dem gleichen Namen, die in /usr/share/factory/ liegen, erstellt. Beachten Sie, dass Berechtigungen bei Symlinks ignoriert werden. c, c+ Erstellt einen Zeichengerateknoten, falls er noch nicht existiert. Falls + angehangt ist und eine Datei bereits existiert, wo der Gerateknoten erstellt werden soll, wird sie entfernt und durch den Gerateknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhangen, um statische Gerateknoten nur beim Systemstart zu erstellen, da Udev keine statischen Gerateknoten verwalten wird, die zur Laufzeit erstellt wurden. b, b+ Erstellt einen Blockgerateknoten, falls er noch nicht existiert. Falls + angehangt ist und eine Datei bereits existiert, wo der Gerateknoten erstellt werden soll, wird sie entfernt und durch den Gerateknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhangen, um statische Gerateknoten nur beim Systemstart zu erstellen, da Udev keine statischen Gerateknoten verwalten wird, die zur Laufzeit erstellt wurden. C, C+ Kopiert eine Datei oder ein Verzeichnis rekursiv, falls die Zieldateien oder -verzeichnisse noch nicht existieren oder das Zielverzeichnis leer ist. Beachten Sie, dass dieser Befehl nicht in Unterverzeichnisse absteigen wird, falls das Zielverzeichnis bereits existiert und nicht leer ist, ausser der Aktion wird + angehangt. Stattdessen wird die gesamte Kopieraktion ubersprungen. Falls das Argument weggelassen wird, werden Dateien aus dem Quellverzeichnis /usr/share/factory/ mit dem gleichen Namen kopiert. Folgt keinen Symlinks. Die Inhalte der Verzeichnisse unterliegen zeitbasierten Bereinigungen, falls das Alter-Argument festgelegt wurde. Hinzugefugt in Version 214. x Ignoriert wahrend der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung, wie sie mit dem Parameter Age gesteuert wird, auszuschliessen. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. X Ignoriert wahrend der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung, wie sie mit dem Parameter Age gesteuert wird, auszuschliessen. Anders als x wird der Parameter keinen Inhalt ausschliessen, falls Pfad ein Verzeichnis ist, sondern nur Verzeichnisse selbst. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Hinzugefugt in Version 198. r Entfernt eine Datei oder ein Verzeichnis, falls sie/es bereits existiert. Dies kann nur zur Entfernung leerer Verzeichnisse verwandt werden, verwenden Sie andernfalls R. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks. R Entfernt einen Pfad und alle seine Unterverzeichnisse (falls es ein Verzeichnis ist) rekursiv. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks. z Passt den Zugriffsmodus, die Benutzer- und Gruppeneigentumerschaft an und stellt den SELinux-Sicherheitskontext einer Datei oder eines Verzeichnisses, falls sie/es existiert, wieder her. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks. Z Setzt rekursiv den Zugriffsmodus, die Benutzer- und Gruppeneigentumerschaft und stellt den SELinux-Sicherheitskontext einer Datei oder eines Verzeichnisses, falls sie/es existiert, sowie, falls zutreffend, seiner Unterverzeichnisse und der darin enthaltenen Dateien, wieder her. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks. t Setzt erweiterte Attribute, siehe attr(5) fur Details. Das Argumentenfeld sollte eine oder mehrere Zuweisungen in der Form Namensraum.Attribut=Wert akzeptieren, Beispiele finden Sie weiter unten. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Dies kann zum Setzen von SMACK-Label nutzlich sein. Folgt keinen Symlinks. Bitte beachten Sie, dass erweiterte Attribute, die mit diesem Zeilentyp setzbar sind, ein anderes Konzept als die mit h/H setzbaren Linux-Dateiattribute sind, siehe unten. Hinzugefugt in Version 218. T Identisch zu t, arbeitet aber rekursiv. Hinzugefugt in Version 219. h Setzt Linux-Datei-/Verzeichnisattribute. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Das Format des Argumentenfelds lautet [+-=][aAcCdDeijPsStTu]. Das Prafix + (die Vorgabe) fuhrt dazu, dass die Attribute hinzugfugt werden, - fuhrt dazu, dass die Attribute entfernt werden, = fuhrt dazu, dass die Attribute genau auf die nachfolgenden Buchstaben gesetzt werden. Die Buchstaben >>aAcCdDeijPsStTu<< wahlen die neuen Attribute fur die Dateien aus, siehe chattr(1) fur weitere Informationen. Wird nur = ubergeben, werden alle oben aufgefuhrten Dateiattribute zuruckgesetzt. Es muss daraufhingewiesen werden, dass sich das Prafix = auf die Attribute beschrankt, die den hier aufgefuhrten Buchstaben entsprechen. Alle weiteren Attribute bleiben unverandert. Folgt keinen Symlinks. Bitte beachten Sie, dass die Linux-Datei-Attribute, die mit diesem Zeilentyp setzbar sind, ein anderes Konzept als die mit t/T setzbaren erweiterten Attribute sind, siehe oben. H Identisch zu h, arbeitet aber rekursiv. Hinzugefugt in Version 220. a, a+ Setzt POSIX ACLs (Zugriffsteuerungslisten), siehe acl(5). Falls zusatzlich >>X<< verwandt wird, wird das Ausfuhren-Bit nur gesetzt, falls die Datei ein Verzeichnis ist oder das Ausfuhrungsrecht bereits fur einen Benutzer gesetzt ist, wie in setfacl(1) erwahnt. Falls + angehangt wird, werden die angegebenen Eintrage zu der bestehenden Menge hinzugefugt. systemd-tmpfiles(8) wird automatisch die benotigten Basiseintrage fur Benutzer und Gruppen basierend auf dem Zugriffsmodus der Datei hinzufugen, ausser die Basiseintrage existieren bereits oder werden explizit festgelegt. Die Maske wird hinzugefugt, falls sie nicht explizit festgelegt oder bereits vorhanden ist. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Dies kann zum Erlauben von zusatzlichen Zugriffen auf bestimmte Dateien nutzlich sein. Folgt keinen Symlinks. Hinzugefugt in Version 219. A, A+ Identisch zu a und a+, aber rekursiv. Folgt keinen Symlinks. Hinzugefugt in Version 219. Typmodifikatoren: Falls das Ausrufezeichen (>>!<<) verwandt wird, ist diese Zeile nur bei der Ausfuhrung wahrend des Systemstarts sicher und kann ein laufendes System beschadigen. Bei Zeilen ohne Ausrufezeichen wird angenommen, dass ihr Aufruf jederzeit sicher ist, z.B. bei Paket-Upgrades. systemd-tmpfiles(8) wird Zeilen mit einem Ausrufezeichen nur in Betracht ziehen, falls die Option --boot angegeben ist. Beispiel: # Sicherstellen, dass diese standardmassig erstellt werden, so dass es # kein anderer machen kann d /tmp/.X11-unix 1777 root root 10d # Losen des X11-Sperrdatei-Links r! /tmp/.X[0-9]*-lock Im Gegensatz zur ersten Zeile wurde die zweite Zeile ein laufendes System beschadigen und wird daher nur mit --boot ausgefuhrt. Falls das Minuszeichen (>>-<<) verwandt wird, wird ein Fehlschlag bei der Ausfuhrung dieser Zeile wahrend der Erstellung (und nur der Erstellung) nicht zu der Ausfuhrung von systemd-tmpfiles fuhren und einen Fehler zuruckliefern. Beispiel: # Verandert sysfs, aber schlagt nicht fehl, falls es sich in einem Container mit schreibgeschutztem /proc befindet w- /proc/sys/vm/swappiness - - - - 10 Falls das Gleichheitszeichen (>>=<<) verwandt wird, dann wird der Dateityp bestehender Objekte in dem festgelegten Pfad uberpruft und dieser entfernt, falls sie nicht ubereinstimmen. Hierzu gehoren alle implizit erstellten Elternverzeichnisse (die entweder Verzeichnisse oder Verzeichnis-Symlinks sein konnen). Ist beispielsweise ein FIFO anstelle eines der Elternpfadkomponenten, wird dieser durch ein Verzeichnis ersetzt. Falls das Tildezeichen (>>~<<) verwandt wird, dann wird die Argumentspalte (d.h. die 6.) vor der Verwendung Base64-dekodiert[1]. Dieser Modifikator wird nur auf Zeilentypen unterstutzt, die Dateiinhalte schreiben konnen, d.h. f, f+, w, +. Dies ist zum Schreiben beliebiger Binardaten (einschliesslich Zeilenumbruchen und Nullbytes) in Dateien nutzlich. Beachten Sie, dass das Argument nicht der Kennzeichnererweiterung unterliegt, falls dieser Schalter verwandt wird, weder vor noch nach der Base64-Dekodierung. Falls das Zirkumflexzeichen (>>^<<) verwandt wird, dann akzeptiert die Argumentspalte (d.h. die 6.) einen Dienstezugangsberechtigungsnamen, aus dem die Argumetendaten gelesen werden. Siehe System- und Dienste-Zugangsberechtigungen[2] fur Details uber das Konzept der Zugangsberechtigungen. Dieser Modifikator wird nur auf Zeilentypen unterstutzt, die Dateiinhalte schreiben konnen, d.h. f, f+, w, +. Dies ist zum Schreiben beliebiger Dateien mit Inhalten, die von woanders ausgelesen wurden, einschliesslich VM- oder Container-Verwaltern weiter oben, nutzlich. Falls die festgelegte Zugangsberechtigung fur den Dienst systemd-tmpfiles nicht gesetzt ist, wird diese Zeile ohne Ruckmeldung ubersprungen. Falls >>^<< und >>~<< kombiniert werden, wird Base64-Dekodierung auf die Inhalte der Zugangsberechtigungen angewandt. Beachten Sie, dass fur alle Zeilentypen, die zur Erstellung irgendeiner Art von Dateimodus fuhren (d.h. f, d/D/v/q/Q, p, L, c/b und C) fuhrende Verzeichnisse implizit falls notwendig erstellt werden, die root gehoren und den Zugriffsmodus 0755 haben. Um sicherzustellen, dass Sie sie mit anderen Modi oder Eigentumerschaften erstellen, verwenden Sie geeignete d-Zeilen. Pfad Die Dateisystempfadangabe unterstutzt einfache Kennzeichnererweiterungen, siehe unten. Der Pfad muss (nach Erweiterung) absolut sein. Modus Der bei der Erstellung der Datei oder des Verzeichnisses zu verwendende Dateizugriffsmodus. Falls weggelassen oder auf >>-<< gesetzt, wird die Vorgabe benutzt: 0755 fur Verzeichnisse, 0644 fur alle anderen Dateiobjekte. Fur z-, Z-Zeilen, weggelassen oder auf >>-<< gesetzt, wird der Dateizugriffsmodus nicht verandert. Dieser Parameter wird fur x-, r-, R-, L-, t- und a-Zeilen ignoriert. Falls optional >>~<< vorangestellt wird, wird der Zugriffsmodus basierend auf Zugriffsbits von bereits bestehenden Dateien oder Verzeichnissen maskiert: falls die bestehende Datei alle Ausfuhr-Bits nicht gesetzt hat, werden auch alle Ausfuhr-Bits von dem neuen Zugriffsmodus entfernt. Ahnlicherweise werden alle Lese-Bits auch von dem neuen Zugriffsmodus entfernt, falls alle Lese-Bits von dem alten Zugriffsmodus entfernt sind und falls alle Schreib-Bits entfernt wurden, werden sie auch von dem neuen Zugriffsmodus entfernt. Zusatzlich wird auch das Bit sticky/SUID/SGID entfernt, ausser es wird auf ein Verzeichnis angewandt. Diese Funktionalitat ist insbesondere im Zusammenspiel mit Z nutzlich. Standardmassig wird der Zugriffsmodus der aufgefuhrten Inodes auf den festgelegten Modus gesetzt, unabhangig davon, ob er neu erstellt wird oder bereits existiert. Falls dem konfigurierten Zugriffsmodus optional ein >>:<< vorangestellt wird, wird dieser nur bei der Erstellung neuer Inodes angewandt. Falls der Inode, auf den sich die Zeile bezieht, bereits existiert, dann verbleibt dessen Zugriffsmodus unverandert. Benutzer, Gruppe Die fur diese Datei oder dieses Verzeichnis zu verwendenden Benutzer und Gruppe. Dies kann entweder eine numerische Kennung oder ein Benutzer- oder Gruppenname sein. Falls weggelassen oder auf >>-<< gesetzt, wird der Benutzer und die Gruppe des Benutzers, der systemd-tmpfiles(8) aufgerufen hat, verwandt. Fur z- und Z-Zeilen, falls weggelassen oder auf >>-<< gesetzt, wird die Dateieigentumerschaft nicht geandert. Diese Parameter werden fur x-, r-, R-, t- und a-Zeilen ignoriert. Dieses Feld sollte im Allgemeinen nur Systembenutzer/-gruppen, d.h. Benutzer/Gruppen, die wahrend des fruhen Systemstarts garantiert aufgelost werden konnen, referenzieren. Falls dieses Feld Benutzer/Gruppen referenziert, die erst wahrend des spateren Systemstarts auflosbar werden (d.h. nachdem NIS, LDAP oder ahnliche netzbasierte Verzeichnisdienste verfugbar werden), wird die Ausfuhrung von Aktionen, die durch diese Zeile festgelegt werden, wahrscheinlich fehlschlagen. Siehe auch Hinweise zur Auflosbarkeit von Benutzer- und Gruppennamen[3] fur weitere Informationen uber die Anforderungen an die Definition von Systembenutzer/-gruppen. Standardmassig wird die Eigentumerschaft der aufgefuhrten Inodes auf den festgelegten Benutzer/die festgelegte Gruppe gesetzt, unabhangig davon, ob diese(r) neu erstellt wird oder bereits existiert. Falls der konfigurierten Benutzer-/Gruppeinformation optional ein >>:<< vorangestellt wird, wird diese nur bei der Erstellung neuer Inodes angewandt. Falls der Inode, auf den sich die Zeile bezieht, bereits existiert, dann verbleibt der Benutzer/die Gruppe unverandert. Alter Das Datumsfeld, falls gesetzt, wird zur Entscheidung, welche Dateien beim Bereinigen geloscht werden sollen, verwandt. Falls eine Datei oder ein Verzeichnis alter als die aktuelle Zeit minus des Feldes >>Alter<< ist, wird sie geloscht. Das Feldformat ist eine Serie von Ganzzahlen, an die eine der nachfolgenden entsprechenden Zeiteinheiten angehangt ist: s (Sekunden), m oder min (Minuten), h (Stunden), d (Tage), w (Wochen), ms (Millisekunden) und us (Mikrosekunden). Es konnen auch die ausgeschriebenen englischen Namen verwandt werden. Falls mehrere Ganzzahlen und Einheiten festgelegt werden, werden die Zeitwerte aufsummiert. Falls eine Ganzzahl ohne Einheit angegeben wird, wird s angenommen. Wird das Alter auf Null gesetzt, werden die Dateien bedingungslos bereinigt. Das Feld >>Alter<< wird nur auf Zeilen, die mit d, D, e, v, q, Q, C, x und X beginnen, angewandt. Falls weggelassen oder auf >>-<< gesetzt, erfolgt keine automatische Bereinigung. Falls das Feld >>Alter<< mit einem Tildezeichen >>~<< beginnt, erfolgt die Bereinigung nur auf Dateien und Verzeichnisse eine Stufe innerhalb des festgelegten Verzeichnisses, aber nicht auf Dateien und Verzeichnisse direkt innerhalb davon. Das Alter des Dateisystemeintrags wird von seinem letzten Anderungszeitstempel (mtime), seinem letzten Zugriffszeitstempel (atime) und (ausser fur Verzeichnisse) seinem letzten Statusanderungszeitstempel (ctime) bestimmt. Standardmassig wird jeder der drei (oder zwei) Werte die Bereinigung verhindern, falls er neuer als die aktuelle Zeit minus des Feldes >>Alter<< ist. Um die Loschung basierend auf einer bestimmten Art von Dateistempel einzuschranken, kann das Argument >>Alterungsdauer<< verwandt werden. Das Argument >>Alterungsdauer<< setzt die Zeitstempeltypen, die fur die Altersuberprufung verwandt werden, ausser Kraft. Es kann angegeben werden, indem dem Alter-Argument eine Reihe von Zeichen, zur Angabe des Zeitstempeltyps, und ein Doppelpunkt (>>:<<) vorangestellt werden: >>Alterungsdauer:IBereinigungszeit<<. Das Argument kann aus a (A fur Verzeichnisse), b (B fur Verzeichnisse), c (C fur Verzeichnisse) oder m (M fur Verzeichnisse) bestehen. Diese geben Zugriff, Erstellung, letzte Statusanderung bzw. letzte Veranderungszeit eines Dateisystemeintrags an. Der Kleinbuchstabe gibt an, dass der ubergebene Zeitstempeltyp fur Dateien betrachtet werden soll, wahrend der Grossbuchstabe angibt, dass der ubergebene Zeitstempeltyp fur Verzeichnisse betrachtet werden soll. Siehe statx(2) Dateistempelfelder (file stamp types) fur weitere Details uber Zeitstempeltypen. Falls nicht angegeben, ist die Vorgabe fur das Feld >>Alterungsdauer<< abcmABM, d.h. standardmassig werden alle Datei-Zeitstempelfelder berucksichtigt mit der Ausnahme des Zeitstempels der letzten Statusanderung (ctime) bei Verzeichnissen. Dies erfolgt, da die Alterungslogik selbst die Ctime andert, immer wenn sie eine Datei darin loscht. Um sicherzustellen, dass die laufende Alterungslogik nicht beim nachsten Durchlauf in sich selbst ruckkoppelt, wird standardmassig die ctime fur Verzeichnisse ignoriert. Beispiel: # Dateien, die vor mehr als einer Stunde erstellt und verandert bzw. # Verzeichnisse, auf die vor mehr als einer Stunde in >>/tmp/foo/bar<< # zugegriffen wurden unterliegen der zeitbasierten Bereinigung. d /tmp/foo/bar - - - bmA:1h - Beachten Sie, dass wahrend der Ausfuhrung des Alterungsalgorithmus eine exklusive BSD-Dateisperre (siehe flock(2)) auf jedem Verzeichnis/jeder Datei erlangt, das oder die der Algorithmus entscheidet zu entfernen. Falls der Alterungsalgorithmus eine bereits erlangte Sperre (gemeinsame oder exklusive) auf einem Verzeichnis/einer Datei findet, wird es/sie (und alles darunter) ubersprungen. Anwendungen konnen dies dazu verwenden, temporar bestimmte Verzeichnisunterbaume von dem Alterungsalgorithmus auszuschliessen: die Anwendungen konnen selbst eine BSD-Dateisperre erlangen und solange sie diese behalten, wird das Altern des Verzeichnisses/der Datei und alles darunter ausgeschaltet. Dieses Verhalten kann dazu verwandt werden, um eine garantierte Bereinigung von Dateien oder Verzeichnissen sicherzustellen, deren Lebensdauer zu der Lebensdauer des Prozesses, der diese an einem von systemd-tmpfiles mt dem Alter von >>0<< uberwachten Ort erzeugte, angepasst ist und dass der Prozess das Verzeichnis oder die Datei sofort sperrt, bevor er es/sie verwendet. Da die BSD-Sperre prozessabhangig ist, wird garantiert, dass die Datei entsperrt wird, sobald sich der Prozess beendet. Das bedeutet, dass diese Dateien und Verzeichnisse entsperrt und von systemd-tmpfiles bereinigt werden, selbst wenn der Prozess absturzt. Argument Fur L-Zeilen bestimmt es den Zielpfad des Symlinks. Fur c und b-Zeilen bestimmt es den Major/Minor des Gerateknotens, wobei Major und Minor als Ganzzahlen getrennt durch >>:<< formatiert sind, z.B. >>1:3<<. Fur f und w kann das Argument zur Angabe einer kurzen Zeichenkette, die in eine Datei (abgeschlossen durch einen Zeilenumbruch) geschrieben wird, verwandt werden. Fur C legt es die Quelldatei oder das Quellverzeichnis fest. Fur t und T bestimmt es die zu setzenden erweiterten Attribute. Fur a und A bestimmt es die zu setzenden ACL-Attribute. Fur h und H bestimmt es die zu setzenden Dateiattribute. Fur alle anderen Zeilen ignoriert. Dieses Feld kann Kennzeichner enthalten, siehe unten. KENNZEICHNER Kennzeichner konnen in den Feldern >>Pfad<< und >>Argument<< verwandt werden. Ein unbekannter oder unauflosbarer Kennzeichner wird als ungultige Konfiguration behandelt. Die folgenden Erweiterungen werden verstanden: Tabelle 1. Verfugbare Kennzeichner +-------------+-------------------------------------+-------------------------------------------+ |Kennzeichner | Bedeutung | Details | +-------------+-------------------------------------+-------------------------------------------+ |"%a" | Architektur | Eine kurze Zeichenkette, die die | | | | Architektur des lokalen Systems | | | | identifiziert. Eine Zeichenkette wie x86, | | | | x86-64 oder arm64. Siehe die fur | | | | ConditionArchitecture= in systemd.unit(5) | | | | definierten Architekturen fur die | | | | vollstandige Liste. | +-------------+-------------------------------------+-------------------------------------------+ |"%A" | Betriebssystemabbildversion | Die | | | | Betriebssystemabbildversionskennzeichnung | | | | des laufenden Systems, wie aus dem Feld | | | | IMAGE_VERSION= in /etc/os-release | | | | ausgelesen. Falls nicht gesetzt, wird es | | | | die leere Zeichenkette. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%b" | Boot-Kennung | Die Boot-Kennung des laufenden Systems, | | | | formatiert als Zeichenkette. Siehe | | | | random(4) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%B" | Betriebssystembaukennung | Die Betriebssystembaukennung des | | | | laufenden Systems, wie aus dem Feld | | | | BUILD_ID= in /etc/os-release ausgelesen. | | | | Falls nicht gesetzt, wird es zur leeren | | | | Zeichenkette aufgelost. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%C" | System- oder | Im Modus --user ist dies identisch zu | | | Benutzerzwischenspeicherverzeichnis | $XDG_CACHE_HOME, andernfalls /var/cache. | +-------------+-------------------------------------+-------------------------------------------+ |"%g" | Benutzergruppe | Dies ist der Name der Gruppe, die den | | | | Befehl ausfuhrt. Im Falle der | | | | Systeminstanz lost sich dies auf >>root<< | | | | auf. | +-------------+-------------------------------------+-------------------------------------------+ |"%G" | Benutzer-GID | Dies ist die numerische GID der Gruppe, | | | | die den Befehl ausfuhrt. Im Falle der | | | | Systeminstanz lost sich dies auf 0 auf. | +-------------+-------------------------------------+-------------------------------------------+ |"%h" | Benutzer-Home-Verzeichnis | Dies ist das Home-Verzeichnis des | | | | Benutzers, der den Befehl ausfuhrt. Im | | | | Falle der Systeminstanz lost sich dies | | | | auf >>/root<< auf. | +-------------+-------------------------------------+-------------------------------------------+ |"%H" | Rechnername | Der Rechnername des laufenden Systems. | +-------------+-------------------------------------+-------------------------------------------+ |"%l" | Kurzer Rechnername | Die Rechnername des laufenden Systems, | | | | abgeschnitten am ersten Punkt, um alle | | | | Domain-Komponenten zu entfernen. | +-------------+-------------------------------------+-------------------------------------------+ |"%L" | System- oder | Im Modus --user ist dies identisch zu | | | Benutzerprotokollierverzeichnis | $XDG_STATE_HOME mit angehangtem /log, | | | | andernfalls /var/log. | +-------------+-------------------------------------+-------------------------------------------+ |"%m" | Maschinenkennung | Die Maschinenkennung des laufenden | | | | Systems, formatiert als Zeichenkette. | | | | Siehe machine-id(5) fur weitere | | | | Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%M" | Betriebssystemabbildkennung | Die Betriebssystemabbildkennung des | | | | laufenden Systems, wie aus dem Feld | | | | IMAGE_ID= in /etc/os-release ausgelesen. | | | | Falls nicht gesetzt, wird es die leere | | | | Zeichenkette. Siehe os-release(5) fur | | | | weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%o" | Betriebssystemkennung | Die Betriebssystemkennung des laufenden | | | | Systems, wie aus dem Feld ID= in | | | | /etc/os-release ausgelesen. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%S" | System- oder | Im Modus --user ist dies identisch zu | | | Benutzerzustandsverzeichnis | $XDG_STATE_HOME, andernfalls /var/lib. | +-------------+-------------------------------------+-------------------------------------------+ |"%t" | System- oder | Im Modus --user ist dies identisch zu | | | Benutzerlaufzeitverzeichnis | $XDG_RUNTIME_DIR, andernfalls /run/. | +-------------+-------------------------------------+-------------------------------------------+ |"%T" | Verzeichnis fur temporare Dateien | Dies ist entweder /tmp oder der Pfad, auf | | | | den >>$TMPDIR<<, >>$TEMP<< oder >>$TMP<< | | | | gesetzt ist. (Beachten Sie, dass das | | | | Verzeichnis ohne abschliessenden | | | | Schragstrich angegeben werden kann.) | +-------------+-------------------------------------+-------------------------------------------+ |"%u" | Benutzername | Dies ist der Name des Benutzers, der den | | | | Befehl ausfuhrt. Im Falle der | | | | Systeminstanz lost sich dies auf >>root<< | | | | auf. | +-------------+-------------------------------------+-------------------------------------------+ |"%U" | Benutzer-UID | Dies ist die numerische UID des | | | | Benutzers, der den Befehl ausfuhrt. Im | | | | Falle der Systeminstanz lost sich dies | | | | auf 0 auf. | +-------------+-------------------------------------+-------------------------------------------+ |"%v" | Kernelveroffentlichung | Identisch zur Ausgabe von uname -r. | +-------------+-------------------------------------+-------------------------------------------+ |"%V" | Verzeichnis fur grossere und | Dies ist entweder /var/tmp oder der Pfad, | | | dauerhafte temporare Dateien | auf den >>$TMPDIR<<, >>$TEMP<< oder | | | | >>$TMP<< gesetzt ist. (Beachten Sie, dass | | | | das Verzeichnis ohne abschliessenden | | | | Schragstrich angegeben werden kann.) | +-------------+-------------------------------------+-------------------------------------------+ |"%w" | Betriebssystemversionskennung | Die Betriebssystemversionskennzeichnung | | | | des laufenden Systems, wie aus dem Feld | | | | VERSION_ID= in /etc/os-release | | | | ausgelesen. Falls nicht gesetzt, wird es | | | | die leere Zeichenkette. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%W" | Betriebssystemvariantenkennung | Die Betriebssystemvariantenkennung des | | | | laufenden Systems, wie aus dem Feld | | | | VARIANT_ID= in /etc/os-release | | | | ausgelesen. Falls nicht gesetzt, wird es | | | | die leere Zeichenkette. Siehe | | | | os-release(5) fur weitere Informationen. | +-------------+-------------------------------------+-------------------------------------------+ |"%%" | Einzelnes Prozentzeichen | Verwenden Sie >>%%<< anstelle von >>%<<, | | | | um ein einzelnes Prozentzeichen | | | | anzugeben. | +-------------+-------------------------------------+-------------------------------------------+ BEISPIELE Beispiel 1. Erstellt Verzeichnisse mit festgelegtem Modus und Eigentumerschaft screen(1) benotigt beim Systemstart zwei Verzeichnisse mit bestimmten Modi und Eigentumerschaften: # /usr/lib/tmpfiles.d/screen.conf d /run/screens 1777 root screen 10d d /run/uscreens 0755 root screen 10d12h Inhalte von /run/screens und /run/uscreens werden nach 10 bzw. 10 Tagen und 12 Stunden bereinigt. Beispiel 2. Erstellt ein Verzeichnis mit einem SMACK-Attribut D /run/cups - - - - t /run/cups - - - - security.SMACK64=printing user.attr-with-spaces="foo bar" Das Verzeichnis wird root gehoren und den Standardmodus haben. Seine Inhalte unterliegen nicht der zeitbasierten Bereinigung, werden aber geloscht, wenn systemd-tmpfiles --remove ausgefuhrt wird. Beispiel 3. Erstellt ein Verzeichnis und verhindert die Bereinigung seiner Inhalte abrt(1) benotigt ein beim Systemstart erstelltes Verzeichnis mit bestimmten Modi und Eigentumerschaften, dessen Inhalte vor der automatischen, auf /var/tmp angewandten Bereinigung geschutzt werden sollten: # /usr/lib/tmpfiles.d/tmp.conf d /var/tmp 1777 root root 30d # /usr/lib/tmpfiles.d/abrt.conf d /var/tmp/abrt 0755 abrt abrt - Beispiel 4. Wendet Bereinigung beim Systemstart und zeitbasiert an # /usr/lib/tmpfiles.d/dnf.conf r! /var/cache/dnf/*/*/download_lock.pid r! /var/cache/dnf/*/*/metadata_lock.pid r! /var/lib/dnf/rpmdb_lock.pid e /var/cache/dnf/ - - - 30d Die Sperrdateien werden wahrend des Systemstarts entfernt. Alle Dateien und Verzeichnisse in /var/cache/dnf/ werden entfernt, nachdem in 30 Tagen nicht auf sie zugegriffen wurde. Beispiel 5. Den Inhalt eines Zwischenspeicherverzeichnisses beim Systemstart leeren # /usr/lib/tmpfiles.d/krb5rcache.conf e! /var/cache/krb5rcache - - - 0 Alle Dateien und Unterverzeichnisse in /var/cache/krb5rcache/ werden beim Systemstart entfernt. Das Verzeichnis wird nicht erstellt. Beispiel 6. .Beistellung von Zugriff mittels offentlicher SSH-Schlussel fur Root uber Zugangsberechtigungen in QEMU -smbios type=11,value=io.systemd.credential.binary:tmpfiles.extra=$(echo -e "d /root/.ssh 0750 root root -\nf~ /root/.ssh/authorized_keys 0600 root root - $(ssh-add -L | base64 -w 0)" | base64 -w 0) Durch Ubergabe dieser Zeile an QEMU wird der offentliche Schlussel des aktuellen Benutzers in Base64 kodiert, zu einer tmpfiles.d-Zeile hinzugefugt, die systemd-tmpfiles(8) mitteilt, ihn nach /root/.ssh/authorized_keys zu dekodieren, diese Zeile selbst in Base64 kodiert und als Zugangsberechtigung ubergeben, die dann von Systemd aus dem SMBIOS beim Systemstart aufgenommen wird. /RUN/ UND /VAR/RUN/ /var/run/ ist ein veralteter Symlink auf /run/ und Anwendungen sollten Letzteres verwenden. systemd-tmpfiles wird bei der Verwendung von /var/run warnen. SIEHE AUCH systemd(1), systemd-tmpfiles(8), systemd-delta(1), systemd.exec(5), attr(5), getfattr(1), setfattr(1), setfacl(1), getfacl(1), chattr(1), btrfs-subvolume(8), btrfs-qgroup(8) ANMERKUNGEN 1. Base64-dekodiert https://www.rfc-editor.org/rfc/rfc4648.html 2. System- und Dienste-Zugangsberechtigungen https://systemd.io/CREDENTIALS 3. Hinweise zur Auflosbarkeit von Benutzer- und Gruppennamen https://systemd.io/UIDS-GIDS/#notes-on-resolvability-of-user-and-group-names UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 256.5 TMPFILES.D(5)