Provided by: manpages-de_4.27.0-1_all 

BEZEICHNUNG
tmpfiles.d - Konfiguration für die Erstellung, Löschung und Bereinigung von Dateien und Verzeichnissen
ÜBERSICHT
/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/anzuhängen - - - - Inhalt
d /Verzeichnis/zu/erstellen-und-aufzuräumen Modus Benutzer Gruppe Aufräumalter -
D /Verzeichnis/zu/erstellen-und-entfernen Modus Benutzer Gruppe Aufräumalter -
e /Verzeichnis/zu/aufzuräumen Modus Benutzer Gruppe Aufräumalter -
v /Teildatenträger-oder-Verzeichnis/zu/erstellen Modus Benutzer Gruppe Aufräumalter -
q /Teildatenträger-oder-Verzeichnis/zu/erstellen Modus Benutzer Grpppe Aufräumalter -
Q /Teildatenträger-oder-Verzeichnis/zu/erstellen Modus Benutzer Gruppe Aufräumalter -
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-Gerät-zu-erstellen Modus Benutzer Gruppe - major:minor
c+ /dev/zeichenorientiertes-Gerät-(neu)zu-erstellen Modus Benutzer Gruppe - major:minor
b /dev/Blockgerät-zu-erstellen Modus Benutzer Gruppe - major:minor
b+ /dev/Blockgerät-(neu)zu-erstellen Modus Benutzer Gruppe - major:minor
C /Ziel/zu/erstellen - - - Aufräumalter /Quelle/zu/kopieren
C+ /Ziel/zu/erstellen - - - Aufräumalter /Quelle/zu/kopieren
x /Pfad-oder-Glob/zu/ignorieren/rekursiv - - - Aufräumalter -
X /Pfad-oder-Glob/zu/ignorieren - - - Aufräumalter -
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/anzuhängen/ACLs - - - - POSIX ACLs
A /Pfad-oder-Glob/zu/setzen/ACLs/rekursiv - - - - POSIX ACLs
A+ /Pfad-oder-Glob/zu/anzuhängen/ACLs/rekursiv - - - - POSIX ACLs
BESCHREIBUNG
tmpfiles.d-Konfigurationsdateien bieten einen generischen Mechanismus an, um die Erstellung regulärer
Dateien, Verzeichnisse, Pipes und Geräteknoten, Anpassungen ihres Zugriffsmodus, ihrer Eigentümerschaft,
Attribute, Kontingente, Zuweisungen und ihres Kontextes und schließlich ihrer zeitbasierten Entfernung zu
definieren. Es wird am häufigsten für flüchtige und temporäre 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 während des Systemstarts und nachfolgenden
periodischen Bereinigungen flüchtige Dateien und Verzeichnisse zu erstellen. Siehe systemd-tmpfiles(8)
für eine Beschreibung von systemd-tmpfiles-setup.service, systemd-tmpfiles-clean.service und zugehörigen
Units.
System-Daemons benötigen häufig private Laufzeitverzeichnisse unterhalb von /run/, um
Kommunikations-Sockets und ähnliches abzuspeichern. Dafür sollte besser RuntimeDirectory= in ihren
Unit-Dateien verwandt werden (siehe systemd.exec(5) für Details), falls die durch tmpfiles.d
bereitgestellte Flexibilität nicht benötigt wird. Der Vorteil ist, dass die durch die Unit benötigte
Konfiguration an einer Stelle zentralisiert ist und dass die Lebensdauer des Verzeichnisses an die
Lebensdauer des Dienstes selbst gekoppelt ist. Ähnlich 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 für Dateien verwandt werden, deren
Lebensdauer unabhängig von irgendeinem Dienst ist oder die kompliziertere Konfiguration benötigen.
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 wünschenswert ist, es leicht zu machen, nur diesen Teil der
Konfiguration außer Kraft zu setzen.
Dateien in /etc/tmpfiles.d setzen Dateien mit dem gleichen Namen in /usr/lib/tmpfiles.d und
/run/tmpfiles.d außer Kraft. Dateien in /run/tmpfiles.d setzen Dateien mit dem gleichen Namen in
/usr/lib/tmpfiles.d außer Kraft. Pakete sollten ihre Konfigurationsdateien in /usr/lib/tmpfiles.d
installieren. Dateien in /etc/tmpfiles.d sind für den lokalen Administrator reserviert, der diese Logik
dazu verwenden kann, um vom Lieferanten installierte Pakete außer Kraft zu setzen. Alle
Konfigurationsdateien werden in lexikographischer Reihenfolge nach ihrem Dateinamen sortiert, unabhängig
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 »!« unterdrückte Zeilen vor jeder Anwendung gefiltert werden, was bedeutet, dass eine spätere
Zeile, die auf einen Pfad passt, angewandt wird, falls eine frührere Zeile das Ausrufezeichen trägt und
daher unterdrückt wird.) Alle anderen im Konflikt stehenden Einträge werden als Fehler protokolliert.
Wenn zwei Zeilen Präfix- und Suffixpfad von dem jeweils anderen sind, wird das Präfix zuerst, das Suffix
später erstellt (und falls das Entfernen für die Zeile gilt, ist die Reihenfolge umgedreht: das Suffix
wird zuerst entfernt, das Präfix später). 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.
Außer für diese Fälle werden die Dateien/Verzeichnisse in der Reihenfolge verarbeitet, in der sie
aufgeführt sind.
Falls der Administrator eine vom Lieferanten bereitgestellte Konfigurationsdatei außer Kraft setzen
möchte, wird empfohlen, einen Symlink auf /dev/null in /etc/tmpfiles.d/, der den gleichen Dateinamen
trägt, anzulegen.
KONFIGURATIONSDATEIFORMAT
Das Konfigurationsformat ist eine Zeile pro Pfad und enthält Typ-, Pfad-, Modus-, Eigentümerschaft-,
Alter- und Argumentfelder. Die Zeilen werden durch Zeilenumbrüche, 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 können C-artige Maskierungen enthalten. Mit Ausnahme des siebten Feldes (dem »Argument«) können
alle Felder in englische Anführungszeichen eingeschlossen werden. Beachten Sie, dass sämtliche
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 + angehängt ist,
wird die Zeile an die Datei angehängt. 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 abschließenden Zeilenumbruch geschrieben. C-artige
Rückwärtsschrägstrichmaskierungen werden interpretiert. Folgt Symlinks.
d
Erstellt ein Verzeichnis. Der Modus und die Eigentümerschaft werden angepasst, falls angegeben.
Inhalte dieses Verzeichnisses unterliegen einer zeitbasierten Bereinigung, falls das Argument »Alter«
festgelegt ist.
D
Ähnlich zu d, aber zusätzlich werden die Inhalte des Verzeichnisses entfernt, wenn --remove verwandt
wird.
e
Passt den Modus und die Eigentümerschaft 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 gelöscht.
Damit dieser Eintrag nützlich 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 ! nützlich sein, siehe Beispiele.
Hinzugefügt in Version 230.
v
Erstellt einen Teildatenträger, falls der Pfad noch nicht existiert, das Dateisystem Teildatenträger
unterstützt (Btrfs) und das System selbst in einen Teildatenträger installiert ist (konkret: das
Wurzelverzeichnis / ist selbst ein Teildatenträger). Andernfalls wird wie bei d ein normales
Verzeichnis erstellt.
Ein mit diesem Zeilentyp erstellter Teildatenträger wird keiner abstrakteren Kontingentgruppe
zugeordnet. Verwenden Sie dafür q oder Q, die die Erstellung einfacher Kontingentgruppenhierarchien
erlauben, siehe unten.
Hinzugefügt in Version 219.
q
Erstellt wie bei v einen Teildatenträger oder Verzeichnis, weist den Teildatenträger aber der
gleichen abstrakteren Kontingentgruppe wie dem Eltern-Teildatenträger zu. Dies stellt sicher, dass
abstraktere Begrenzungen und Buchführungen auf den Eltern-Teildatenträger auch den angegebenen
Teildatenträger einschließen. Auf von Btrfs verschiedenen Dateisystemen ist diese Zeile zu d
identisch.
Falls der Teildatenträger bereits existiert, erfolgen an der Kontingenthierarchie keine Änderungen,
unabhängig davon, ob der Teildatenträger bereits an die Kontingentgruppe angehängt ist. Siehe auch Q
unten. Siehe btrfs-qgroup(8) für Details über das Btrfs-Kontingentgruppenkonzept.
Hinzugefügt in Version 228.
Q
Erstellt wie bei v einen Teildatenträger oder ein Verzeichnis, weist dem neuen Teildatenträger eine
neue Blatt-Kontingentgruppe zu. Statt wie bei q die abstraktere Kontingentgruppenzuweisung vom
Eltern-Teildatenträger zu kopieren, wird die niedrigste Kontingentgruppe des Eltern-Teildatenträgers
bestimmt, die nicht in der Blatt-Kontingentgruppe ist. Dann wird eine »Zwischen«-Kontingentgruppe
eingefügt, die eine Stufe unterhalb dieser Stufe ist und sich den Kennungsteil mit dem angegebenen
Teildatenträger teilt. Falls keine abstraktere Kontingentgruppe für den Eltern-Teildatenträger
existiert, wird stattdessen eine neue Kontingentgruppe auf Stufe 255 eingefügt, die die gleiche
Kennung wie der angegebene Teildatenträger hat. Diese neue Zwischenkontingentgruppe wird dann der
abstrakten Kontingentgruppe des Eltern-Teildatenträgers zugewiesen und die festgelegte
Blatt-Kontingentgruppe des Teildatenträgers wird dieser zugewiesen.
Effektiv hat dies eine ähnliche Wirkung wie q, führt allerdings eine neue abstrakte Kontingentgruppe
für den angegebenen Teildatenträger ein, die zum Durchsetzen von Begrenzungen und Buchführungen für
den angegebenen Teildatenträger und innerhalb darin erstellter Kinder-Teildatenträger verwandt werden
kann. Werden daher Teildatenträger nur mittels q und Q erstellt, wird ein
»Unterbaumkontingente«-Konzept implementiert. Für jeden Teildatenträger, für das Q gesetzt ist, wird
eine »Unterbaum«-Kontingentgruppe erstellt und alle darin erstellten Kinder-Teildatenträger werden
ihr zugewiesen. Jeder Teildatenträger, für 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-Teildatenträger zugewiesen wird.
Es wird empfohlen, Q für Teildatenträger zu verwenden, die typischerweise weitere Teildatenträger
enthalten und bei denen es wünschenswert ist, Buchführung und Kontingentbegrenzungen auf allen
Kind-Teildatenträger zusammen zu haben. Beispiele für Q sind typischerweise /home/ oder
/var/lib/machines/. q sollte dagegen für Teildatenträger verwandt werden, die entweder normalerweise
keine weiteren Teildatenträger enthalten oder bei denen keine Buchführung und Kontingentbegrenzungen
benötigt werden, die auf alle Kind-Teildatenträger zusammen angewandt werden sollen. Beispiele für q
sind typischerweise /var/ oder /var/tmp/.
Wie mit q hat Q keine Wirkung auf die Kontingentgruppenhierarchie, falls der Teildatenträger bereits
existiert, unabhängig davon, ob der Teildatenträger bereits zu der Kontingentgruppe gehört.
Hinzugefügt in Version 228.
p, p+
Erstellt eine benannte Pipe (FIFO), falls sie noch nicht existiert. Falls + angehängt ist und eine
Datei bereits existiert, wo die Pipe erstellt werden soll, wird sie entfernt und durch die Pipe
ersetzt.
L, L+, L?
Erstellt einen Symlink, falls er noch nicht existiert. Falls + angehängt ist und eine Datei bereits
existiert, wo der Symlink erstellt werden soll, wird sie entfernt und durch den Symlink ersetzt.
Falls ? angehängt wird und der Quellpfad nicht existiert, wird der Symlink nicht erstellt. 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 Zeichengeräteknoten, falls er noch nicht existiert. Falls + angehängt ist und eine
Datei bereits existiert, wo der Geräteknoten erstellt werden soll, wird sie entfernt und durch den
Geräteknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhängen, um
statische Geräteknoten nur beim Systemstart zu erstellen, da Udev keine statischen Geräteknoten
verwalten wird, die zur Laufzeit erstellt wurden.
b, b+
Erstellt einen Blockgeräteknoten, falls er noch nicht existiert. Falls + angehängt ist und eine Datei
bereits existiert, wo der Geräteknoten erstellt werden soll, wird sie entfernt und durch den
Geräteknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhängen, um
statische Geräteknoten nur beim Systemstart zu erstellen, da Udev keine statischen Geräteknoten
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,
außer der Aktion wird + angehängt. Stattdessen wird die gesamte Kopieraktion übersprungen. 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.
Hinzugefügt in Version 214.
x
Ignoriert während der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung,
wie sie mit dem Parameter Age gesteuert wird, auszuschließen. Zeilen von diesem Typ akzeptieren
Shell-artige Globs anstelle von normalen Pfadnamen.
X
Ignoriert während der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung,
wie sie mit dem Parameter Age gesteuert wird, auszuschließen. Anders als x wird der Parameter keinen
Inhalt ausschließen, falls Pfad ein Verzeichnis ist, sondern nur Verzeichnisse selbst. Zeilen von
diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen.
Hinzugefügt 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 Gruppeneigentümerschaft 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 Gruppeneigentümerschaft 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) für 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 nützlich 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.
Hinzugefügt in Version 218.
T
Identisch zu t, arbeitet aber rekursiv.
Hinzugefügt 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 Präfix + (die Vorgabe) führt dazu,
dass die Attribute hinzugfügt werden, - führt dazu, dass die Attribute entfernt werden, = führt dazu,
dass die Attribute genau auf die nachfolgenden Buchstaben gesetzt werden. Die Buchstaben
»aAcCdDeijPsStTu« wählen die neuen Attribute für die Dateien aus, siehe chattr(1) für weitere
Informationen.
Wird nur = übergeben, werden alle oben aufgeführten Dateiattribute zurückgesetzt. Es muss
daraufhingewiesen werden, dass sich das Präfix = auf die Attribute beschränkt, die den hier
aufgeführten Buchstaben entsprechen. Alle weiteren Attribute bleiben unverändert. 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.
Hinzugefügt in Version 220.
a, a+
Setzt POSIX ACLs (Zugriffsteuerungslisten), siehe acl(5). Falls zusätzlich »X« verwandt wird, wird
das Ausführen-Bit nur gesetzt, falls die Datei ein Verzeichnis ist oder das Ausführungsrecht bereits
für einen Benutzer gesetzt ist, wie in setfacl(1) erwähnt. Falls + angehängt wird, werden die
angegebenen Einträge zu der bestehenden Menge hinzugefügt. systemd-tmpfiles(8) wird automatisch die
benötigten Basiseinträge für Benutzer und Gruppen basierend auf dem Zugriffsmodus der Datei
hinzufügen, außer die Basiseinträge existieren bereits oder werden explizit festgelegt. Die Maske
wird hinzugefügt, 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
zusätzlichen Zugriffen auf bestimmte Dateien nützlich sein. Folgt keinen Symlinks.
Hinzugefügt in Version 219.
A, A+
Identisch zu a und a+, aber rekursiv. Folgt keinen Symlinks.
Hinzugefügt in Version 219.
Typmodifikatoren:
Falls das Ausrufezeichen (»!«) verwandt wird, ist diese Zeile nur bei der Ausführung während des
Systemstarts sicher und kann ein laufendes System beschädigen. 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 standardmäßig erstellt werden, so dass es
# kein anderer machen kann
d /tmp/.X11-unix 1777 root root 10d
# Lösen des X11-Sperrdatei-Links
r! /tmp/.X[0-9]*-lock
Im Gegensatz zur ersten Zeile würde die zweite Zeile ein laufendes System beschädigen und wird daher nur
mit --boot ausgeführt.
Falls das Minuszeichen (»-«) verwandt wird, wird ein Fehlschlag bei der Ausführung dieser Zeile während
der Erstellung (und nur der Erstellung) nicht dazu führen, dass die Ausführung von systemd-tmpfiles einen
Fehler zurückliefert.
Beispiel:
# Verändert sysfs, aber schlägt nicht fehl, falls es sich in einem Container mit schreibgeschütztem /proc befindet
w- /proc/sys/vm/swappiness - - - - 10
Falls das Gleichheitszeichen (»=«) verwandt wird, dann wird der Dateityp bestehender Objekte in dem
festgelegten Pfad überprüft und dieser entfernt, falls sie nicht übereinstimmen. Hierzu gehören alle
implizit erstellten Elternverzeichnisse (die entweder Verzeichnisse oder Verzeichnis-Symlinks sein
können). 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 unterstützt, die Dateiinhalte schreiben
können, d.h. f, f+, w, +. Dies ist zum Schreiben beliebiger Binärdaten (einschließlich Zeilenumbrüchen
und Nullbytes) in Dateien nützlich. 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] für Details über das Konzept der Zugangsberechtigungen. Dieser
Modifikator wird nur auf Zeilentypen unterstützt, die Dateiinhalte schreiben können, d.h. f, f+, w, +.
Dies ist zum Schreiben beliebiger Dateien mit Inhalten, die von woanders ausgelesen wurden,
einschließlich VM- oder Container-Verwaltern weiter oben, nützlich. Falls die festgelegte
Zugangsberechtigung für den Dienst systemd-tmpfiles nicht gesetzt ist, wird diese Zeile ohne Rückmeldung
übersprungen. Falls »^« und »~« kombiniert werden, wird Base64-Dekodierung auf die Inhalte der
Zugangsberechtigungen angewandt.
Falls das Dollarzeichen (»$«) verwandt wird, wird das Dateisystem entfernt, wenn systemd-tmpfiles mit dem
Schalter --purge aufgerufen wird. Zeilen ohne dieses Zeichen sind von dem Schalter nicht betroffen.
Beachten Sie, dass für alle Zeilentypen, die zur Erstellung irgendeiner Art von Dateimodus führen (d.h.
f, d/D/v/q/Q, p, L, c/b und C) führende Verzeichnisse implizit falls notwendig erstellt werden, die root
gehören und den Zugriffsmodus 0755 haben. Um sicherzustellen, dass Sie sie mit anderen Modi oder
Eigentümerschaften erstellen, verwenden Sie geeignete d-Zeilen.
Pfad
Die Dateisystempfadangabe unterstützt 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 für Verzeichnisse, 0644 für alle anderen
Dateiobjekte. Für z-, Z-Zeilen, weggelassen oder auf »-« gesetzt, wird der Dateizugriffsmodus nicht
verändert. Dieser Parameter wird für 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 Ausführ-Bits nicht
gesetzt hat, werden auch alle Ausführ-Bits von dem neuen Zugriffsmodus entfernt. Ähnlicherweise 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. Zusätzlich wird auch das Bit sticky/SUID/SGID entfernt, außer es wird auf ein
Verzeichnis angewandt. Diese Funktionalität ist insbesondere im Zusammenspiel mit Z nützlich.
Standardmäßig wird der Zugriffsmodus der aufgeführten Inodes auf den festgelegten Modus gesetzt,
unabhängig 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
unverändert.
Benutzer, Gruppe
Die für 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. Für z- und
Z-Zeilen, falls weggelassen oder auf »-« gesetzt, wird die Dateieigentümerschaft nicht geändert. Diese
Parameter werden für x-, r-, R-, t- und a-Zeilen ignoriert.
Dieses Feld sollte im Allgemeinen nur Systembenutzer/-gruppen, d.h. Benutzer/Gruppen, die während des
frühen Systemstarts garantiert aufgelöst werden können, referenzieren. Falls dieses Feld Benutzer/Gruppen
referenziert, die erst während des späteren Systemstarts auflösbar werden (d.h. nachdem NIS, LDAP oder
ähnliche netzbasierte Verzeichnisdienste verfügbar werden), wird die Ausführung von Aktionen, die durch
diese Zeile festgelegt werden, wahrscheinlich fehlschlagen. Siehe auch Hinweise zur Auflösbarkeit von
Benutzer- und Gruppennamen[3] für weitere Informationen über die Anforderungen an die Definition von
Systembenutzer/-gruppen.
Standardmäßig wird die Eigentümerschaft der aufgeführten Inodes auf den festgelegten Benutzer/die
festgelegte Gruppe gesetzt, unabhängig 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 unverändert.
Alter
Das Datumsfeld, falls gesetzt, wird zur Entscheidung, welche Dateien beim Bereinigen gelöscht werden
sollen, verwandt. Falls eine Datei oder ein Verzeichnis älter als die aktuelle Zeit minus des Feldes
»Alter« ist, wird sie gelöscht. Das Feldformat ist eine Serie von Ganzzahlen, an die eine der
nachfolgenden entsprechenden Zeiteinheiten angehängt ist: s (Sekunden), m oder min (Minuten), h
(Stunden), d (Tage), w (Wochen), ms (Millisekunden) und us (Mikrosekunden). Es können 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 Änderungszeitstempel (mtime), seinem letzten
Zugriffszeitstempel (atime) und (außer für Verzeichnisse) seinem letzten Statusänderungszeitstempel
(ctime) bestimmt. Standardmäßig wird jeder der drei (oder zwei) Werte die Bereinigung verhindern, falls
er neuer als die aktuelle Zeit minus des Feldes »Alter« ist. Um die Löschung basierend auf einer
bestimmten Art von Dateistempel einzuschränken, kann das Argument »Alterungsdauer« verwandt werden.
Das Argument »Alterungsdauer« setzt die Zeitstempeltypen, die für die Altersüberprüfung verwandt werden,
außer 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 für Verzeichnisse), b (B für Verzeichnisse), c (C für Verzeichnisse) oder m (M für
Verzeichnisse) bestehen. Diese geben Zugriff, Erstellung, letzte Statusänderung bzw. letzte
Veränderungszeit eines Dateisystemeintrags an. Der Kleinbuchstabe gibt an, dass der übergebene
Zeitstempeltyp für Dateien betrachtet werden soll, während der Großbuchstabe angibt, dass der übergebene
Zeitstempeltyp für Verzeichnisse betrachtet werden soll. Siehe statx(2) Dateistempelfelder (file stamp
types) für weitere Details über Zeitstempeltypen.
Falls nicht angegeben, ist die Vorgabe für das Feld »Alterungsdauer« abcmABM, d.h. standardmäßig werden
alle Datei-Zeitstempelfelder berücksichtigt mit der Ausnahme des Zeitstempels der letzten Statusänderung
(ctime) bei Verzeichnissen. Dies erfolgt, da die Alterungslogik selbst die Ctime ändert, immer wenn sie
eine Datei darin löscht. Um sicherzustellen, dass die laufende Alterungslogik nicht beim nächsten
Durchlauf in sich selbst rückkoppelt, wird standardmäßig die ctime für Verzeichnisse ignoriert.
Beispiel:
# Dateien, die vor mehr als einer Stunde erstellt und verändert 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 während der Ausführung 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) übersprungen. Anwendungen können
dies dazu verwenden, temporär bestimmte Verzeichnisunterbäume von dem Alterungsalgorithmus
auszuschließen: die Anwendungen können 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« überwachten Ort erzeugte, angepasst ist und dass der Prozess
das Verzeichnis oder die Datei sofort sperrt, bevor er es/sie verwendet. Da die BSD-Sperre
prozessabhängig 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 abstürzt.
Argument
Für L-Zeilen bestimmt es den Zielpfad des Symlinks. Für c und b-Zeilen bestimmt es den Major/Minor des
Geräteknotens, wobei Major und Minor als Ganzzahlen getrennt durch »:« formatiert sind, z.B. »1:3«. Für f
und w kann das Argument zur Angabe einer kurzen Zeichenkette, die in eine Datei (abgeschlossen durch
einen Zeilenumbruch) geschrieben wird, verwandt werden. Für C legt es die Quelldatei oder das
Quellverzeichnis fest. Für t und T bestimmt es die zu setzenden erweiterten Attribute. Für a und A
bestimmt es die zu setzenden ACL-Attribute. Für h und H bestimmt es die zu setzenden Dateiattribute. Für
alle anderen Zeilen ignoriert.
Dieses Feld kann Kennzeichner enthalten, siehe unten.
KENNZEICHNER
Kennzeichner können in den Feldern »Pfad« und »Argument« verwandt werden. Ein unbekannter oder
unauflösbarer Kennzeichner wird als ungültige Konfiguration behandelt. Die folgenden Erweiterungen werden
verstanden:
Tabelle 1. Verfügbare 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 für │
│ │ │ ConditionArchitecture= in │
│ │ │ systemd.unit(5) definierten │
│ │ │ Architekturen für die │
│ │ │ vollständige Liste. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%A" │ Betriebssystemabbildversion │ Die │
│ │ │ Betriebssystemabbildversionskennzeichnung │
│ │ │ des laufenden Systems, wie │
│ │ │ aus dem Feld IMAGE_VERSION= │
│ │ │ in /etc/os-release │
│ │ │ ausgelesen. Falls nicht │
│ │ │ gesetzt, wird es zur leeren │
│ │ │ Zeichenkette aufgelöst. │
│ │ │ Siehe os-release(5) für │
│ │ │ weitere Informationen. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%b" │ Boot-Kennung │ Die Boot-Kennung des laufenden Systems, │
│ │ │ formatiert als Zeichenkette. Siehe │
│ │ │ random(4) für 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 aufgelöst. Siehe │
│ │ │ os-release(5) für 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 ausführt. Im Falle der │
│ │ │ Systeminstanz löst sich dies auf »root« │
│ │ │ auf. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%G" │ Benutzer-GID │ Dies ist die numerische GID der Gruppe, │
│ │ │ die den Befehl ausführt. Im Falle der │
│ │ │ Systeminstanz löst sich dies auf 0 auf. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%h" │ Benutzer-Home-Verzeichnis │ Dies ist das Home-Verzeichnis des │
│ │ │ Benutzers, der den Befehl ausführt. Im │
│ │ │ Falle der Systeminstanz löst 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 angehängtem /log, │
│ │ │ andernfalls /var/log. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%m" │ Maschinenkennung │ Die Maschinenkennung des laufenden │
│ │ │ Systems, formatiert als Zeichenkette. │
│ │ │ Siehe machine-id(5) für 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) für │
│ │ │ weitere Informationen. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%o" │ Betriebssystemkennung │ Die Betriebssystemkennung des laufenden │
│ │ │ Systems, wie aus dem Feld ID= in │
│ │ │ /etc/os-release ausgelesen. Siehe │
│ │ │ os-release(5) für weitere Informationen. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%q" │ Schöner Rechnername │ Die schöne Rechnername des laufenden │
│ │ │ Systems, wie aus dem Feld │
│ │ │ PRETTY_HOSTNAME= in /etc/machine-info │
│ │ │ ausgelesen. Falls nicht gesetzt, wird es │
│ │ │ auf den kurzen Rechnernamen aufgelöst. │
│ │ │ Siehe machine-info(5) für 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 für temporäre Dateien │ Dies ist entweder /tmp oder der Pfad, auf │
│ │ │ den »$TMPDIR«, »$TEMP« oder »$TMP« │
│ │ │ gesetzt ist. (Beachten Sie, dass das │
│ │ │ Verzeichnis ohne abschließenden │
│ │ │ Schrägstrich angegeben werden kann.) │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%u" │ Benutzername │ Dies ist der Name des Benutzers, der den │
│ │ │ Befehl ausführt. Im Falle der │
│ │ │ Systeminstanz löst sich dies auf »root« │
│ │ │ auf. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%U" │ Benutzer-UID │ Dies ist die numerische UID des │
│ │ │ Benutzers, der den Befehl ausführt. Im │
│ │ │ Falle der Systeminstanz löst sich dies │
│ │ │ auf 0 auf. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%v" │ Kernelveröffentlichung │ Identisch zur Ausgabe von uname -r. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%V" │ Verzeichnis für größere und │ Dies ist entweder /var/tmp oder der Pfad, │
│ │ dauerhafte temporäre Dateien │ auf den »$TMPDIR«, »$TEMP« oder »$TMP« │
│ │ │ gesetzt ist. (Beachten Sie, dass das │
│ │ │ Verzeichnis ohne abschließenden │
│ │ │ Schrägstrich 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) für 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) für weitere Informationen. │
├──────────────┼─────────────────────────────────────┼───────────────────────────────────────────┤
│ "%%" │ Einzelnes Prozentzeichen │ Verwenden Sie »%%« anstelle von »%«, um │
│ │ │ ein einzelnes Prozentzeichen anzugeben. │
└──────────────┴─────────────────────────────────────┴───────────────────────────────────────────┘
BEISPIELE
Beispiel 1. Erstellt Verzeichnisse mit festgelegtem Modus und Eigentümerschaft
screen(1) benötigt beim Systemstart zwei Verzeichnisse mit bestimmten Modi und Eigentümerschaften:
# /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 gehören und den Standardmodus haben. Seine Inhalte unterliegen nicht der
zeitbasierten Bereinigung, werden aber gelöscht, wenn systemd-tmpfiles --remove ausgeführt wird.
Beispiel 3. Erstellt ein Verzeichnis und verhindert die Bereinigung seiner Inhalte
abrt(1) benötigt ein beim Systemstart erstelltes Verzeichnis mit bestimmten Modi und Eigentümerschaften,
dessen Inhalte vor der automatischen, auf /var/tmp angewandten Bereinigung geschützt 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 während 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 öffentlicher SSH-Schlüssel für Root über
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 Übergabe dieser Zeile an QEMU wird der öffentliche Schlüssel des aktuellen Benutzers in Base64
kodiert, zu einer tmpfiles.d-Zeile hinzugefügt, die systemd-tmpfiles(8) mitteilt, ihn nach
/root/.ssh/authorized_keys zu dekodieren, diese Zeile selbst in Base64 kodiert und als
Zugangsberechtigung übergeben, 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 Auflösbarkeit von Benutzer- und Gruppennamen
https://systemd.io/UIDS-GIDS/#notes-on-resolvability-of-user-and-group-names
Ü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: debian-l10n-german@lists.debian.org.
systemd 257.6 TMPFILES.D(5)