SYSTEMD-TMPFILES(8)

BEZEICHNUNG
systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev-early.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer - Temporäre und flüchtige Dateien sowie Verzeichnisse erstellen, löschen und aufräumen

ÜBERSICHT

systemd-tmpfiles [OPTIONEN …] [KONFIGURATIONSDATEI …]

System-Units:

systemd-tmpfiles-setup.service
systemd-tmpfiles-setup-dev-early.service
systemd-tmpfiles-setup-dev.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

Benutzer-Units:

systemd-tmpfiles-setup.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

BESCHREIBUNG

systemd-tmpfiles erstellt und löscht temporäre und flüchtige Dateien sowie Verzeichnisse und räumt diese auf, unter Verwendung des Konfigurationsdateiformats und des Ortes der in tmpfiles.d(5) beschriebenen Konfigurationsdatei. Es muss mit einer oder mehrerer der Optionen --create, --remove und --clean aufgerufen werden, um die entsprechende Teilmenge der Aktionen auszuwählen.

Standardmäßig werden alle Direktiven aus allen Konfigurationsdateien angewandt. Beim Aufruf mit --replace=PFAD werden die auf der Befehlzeile festgelegten Argumente anstatt der Konfigurationsdatei PFAD verwandt. Werden andernfalls ein oder mehrere absolute Dateinamen in der Befehlszeile übergeben, werden nur die in diesen Dateien enthaltenen Anweisungen ausgeführt. Wenn »-« statt eines Dateinamens angegeben wird, werden die Anweisungen von der Standardeingabe gelesen. In dem Fall, dass nur der Basisname einer Konfigurationsdatei angegeben wird, werden alle in tmpfiles.d(5) angegebenen Verzeichnisse nach einer passenden Datei durchsucht und die gefundene Datei, die die höchste Priorität hat, wird ausgeführt.

Systemdienste (systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev-early.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service) rufen systemd-tmpfiles auf, um Systemdateien zu erstellen und systemweites Aufräumen vorzunehmen. Diese Dienste lesen vom Administrator kontrollierte Konfigurationsdateien in den tmpfiles.d/-Verzeichnissen ein. Benutzerdienste (systemd-tmpfiles-setup.service, systemd-tmpfiles-clean.service) rufen auch systemd-tmpfiles auf, dies liest aber eine separate Gruppe von Dateien, einschließlich der durch Benutzer kontrollierten Dateien unter ~/.config/user-tmpfiles.d/ und ~/.local/share/user-tmpfiles.d/ und der durch den Administrator kontrollierten Dateien unter /usr/share/user-tmpfiles.d/. Benutzer können dies dazu verwenden, Dateien durch sie gesteuert zu erstellen und aufzuräumen, aber die Systeminstanz führt das globale Aufräumen durch und wird nicht von der Benutzerkonfiguration beeinflusst. Beachten Sie, dass daher ein in der Systeminstanz konfiguriertes zeitbasiertes Aufräumen, wie diese typischerweise für /tmp/ konfiguriert ist, auch von der Benutzerinstanz erstellte Dateien betreffen wird, falls sie in /tmp/ abgelegt sind, selbst falls das zeitbasierte Aufräumen in der Benutzerinstanz ausgeschaltet ist.

Um Einstellungen erneut anzuwenden, nachdem die Konfiguration verändert wurde, starten Sie einfach systemd-tmpfiles-clean.service neu, wodurch alle Einstellungen, die problemlos während der Laufzeit ausgeführt werden können, angewandt werden. Um Fehler in systemd-tmpfiles zu finden, kann es nützlich sein, es direkt von der Befehlszeile aus mit erhöhter Protokollierstufe aufzurufen (siehe nachfolgenden $SYSTEMD_LOG_LEVEL).

OPTIONEN

Die folgenden Optionen werden verstanden:

--create
    Entfernt alle in der Konfigurationsdatei mit f, F, w, d, D, v, p, L, c, b, m markierten Dateien und Verzeichnisse oder legt diese an. Mit z, Z, , t, T, a und A markierte Dateien und Verzeichnisse haben ihre eigenen Besitzer, Zugriffsmodi und Sicherheits-Label.

--clean
    Räumt alle Dateien und Verzeichnisse auf, für die ein Parameter konfiguriert ist, der sich auf das Alter bezieht.

--remove
    Entfernt den Inhalt aller mit D oder R markierten Dateien und Verzeichnisse, sowie die mit r oder R markierten Verzeichnisse selbst, außer auf sie wird eine exklusive oder gemeinsame Sperre gehalten (siehe flock(2)).

--user
    Wendet die »Benutzer«-Konfiguration an, d.h. tmpfiles.d-Dateien in Benutzerkonfigurationsverzeichnissen.

--boot
    Führt auch Zeilen aus, die mit einem Anführungszeichen beginnen. Zeilen, deren Ausführung auf einem laufenden System nicht sicher sind, können auf diese Art markiert werden. systemd-tmpfiles wird im Systemstart früh mit angegebenem --boot ausgeführt und wird diese Zeilen ausführen. Bei späterem Aufruf sollte es ohne --boot aufgerufen werden.

--graceful
    Ignoriert Konfigurationszeilen, die unbekannte Benutzer oder Gruppen betreffen. Diese Option ist für die frühe Systemstartphase gedacht, bevor alle Benutzer und Gruppen erstellt wurden.

--prefix=Pfad
    Wendet nur jene Regeln an, die auf Pfade mit dem angegebenen Präfix verweisen. Diese Option kann mehrmals angegeben werden.

--exclude-prefix=Pfad
    Ignoriert die Regeln zum Anwenden der Pfade mit dem angegebenen Präfix. Diese Option kann mehrmals angegeben werden.

-E
    Eine Abkürzung für »--exclude-prefix=/dev --exclude-prefix=/proc --exclude-prefix=/run --exclude-prefix=/sys«, d.h. den Ausschluss von Hierarchien, die typischerweise durch virtuelle oder Speicherdateisysteme hinterlegt sind. Dies ist in Kombination mit --root= nützlich, falls der angegebene Verzeichnisbaum einen Betriebssystembaum enthält, der diese virtuellen/Speicherdateisysteme unter diesen Unterverzeichnissen nicht eingehängt hat, falls angenommen wird, dass diese zur Laufzeit darüber eingehängt werden.

--root=Wurzel
    Akzeptiert einen Verzeichnispfad als Argument. Allen Pfaden wird der angegebene alternative Wurzel-Pfad vorangestellt, einschließlich der Suchpfade für die Konfiguration.

    Wenn diese Option verwandt wird, wird der »Name Service Switch (NSS)« der Libc für die Auflösung von Benutzern und Gruppen umgangen. Stattdessen werden die Dateien /etc/passwd und /etc/group innerhalb der alternativen Wurzel direkt gelesen. Dies bedeutet, dass Benutzer/Gruppen, die in diesen Dateien nicht aufgeführt sind, nicht aufgelöst werden, d.h. LDAP-NIS und andere komplexe Datenbanken werden nicht berücksichtigt.

    Ziehen Sie in Betracht, dies mit -E zu kombinieren, um sicherzustellen, dass der Aufruf keine Dateien oder Verzeichnisse unterhalb von Einhängepunkten im Betriebssystemabbild, auf dem gearbeitet wird, anlegt, die typischerweise zur Laufzeit durch Einhängungen überdeckt werden.

--image=Abbild
    Akzeptiert einen Pfad zu einer Plattenabbilddatei oder einem Blockgerätenamen. Falls angegeben, werden alle Aktionen auf das Dateisystem in dem angegebenen Plattenabbild angewandt. Dies ist ähnlich zu --root=, agiert aber auf Dateisystemen, die in Plattenabbildern oder Blockgeräten gespeichert sind. Das Plattenabbild sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen innerhalb einer GPT-Partitionstabelle enthalten, die der Spezifikation für auffindbare Partitionen[1] folgt. Für weitere Informationen über unterstützte Plattenabbilder, siehe den Schalter von systemd-nspawn(1) mit dem gleichen Namen.

    Impliziert -E.

--image-policy=Richtlinie
    Akzeptiert gemäß systemd.image-policy(7) eine Abbildrichtlinienzeichenkette als Argument. Die Richtlinie wird bei Aktionen auf dem mittels --image= angegebenen Plattenabbild durchgesetzt, siehe oben. Falls nicht angegeben ist die Vorgabe die Richtlinie »*«, d.h. alle erkannten Dateisysteme im Abbild werden verwandt.

--replace=PFAD
    Wird diese Option angegeben, müssen eine oder mehrere positionsbezogene Argumente festgelegt werden. Alle in den in tmpfiles.d(5) aufgeführten Verzeichnissen gefundenen Konfigurationsdateien werden gelesen und die auf der Befehlszeile übergebene Konfiguration wird statt der Konfigurationsdatei PFAD mit der gleichen Priorität wie diese verwandt.

    Wenn die Installationsskripte laufen und zum Paket gehörende Dateien noch nicht verfügbar sind, muss der Inhalt der Skripte auf der Befehlszeile übergeben werden. Diese Option sorgt dafür, dass die Konfigurationsskripte des Administrators eine höhere Priorität erhalten, sofern diese bereits existieren.

--cat-config
    Kopiert den Inhalt der Konfigurationsdateien in die Standardausgabe. Vor jeder Datei wird der Dateiname als Kommentar ausgegeben.

--no-pager
    Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

-h, --help
    Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version
    Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

Es ist möglich, --create, --clean und --remove in einem Aufruf zu kombinieren (in diesem Fall wird die Entfernung und Bereinigung vor der Erstellung neuer Dateien durchgeführt). Zum Beispiel wird während des Systemstarts die folgende Befehlszeile ausgeführt, um sicherzustellen, dass alle flüchtigen und temporären Verzeichnisse entsprechend der Konfigurationsdatei entfernt beziehungsweise angelegt werden:

    systemd-tmpfiles --remove --create

ZUGANGSBERECHTIGUNGEN

systemd-tmpfiles unterstützt die durch ImportCredential=/LoadCredential=/SetCredential= implementierte Dienstezugangsberechtigungslogik (siehe systemd.exec(1) für Details). Die folgenden Zugangsberechtigungen werden verwandt, wenn sie hereingegeben werden:

tmpfiles.extra
    Der Inhalt dieser Zugangsberechtigung kann zusätzliche Zeilen, auf die agiert werden soll, enthalten. Der Zugangsberechtigungsinhalt sollte dem gleichen Format wie jede andere Ergänzungskonfigurationsdatei für tmpfiles.d/ folgen. Falls diese Zugangsberechtigung hereingegeben wird, wird sie nach allen anderen, aus dem Dateisystem gelesenen Ergänzungsdateien verarbeitet. Die Zeilen in der Zugangsberechtigung können daher bestehende Zeilen des Betriebssystems ergänzen, sie aber nicht außer Kraft setzen.

Beachten Sie, dass standardmäßig die Unit-Datei systemd-tmpfiles-setup.service (und dazu in Bezug stehende Unit-Dateien) so eingerichtet sind, dass sie die Zugangsberechtigung »tmpfiles.extra« vom Diensteverwalter erben.

UMGEBUNGSVARIABLEN

$SYSTEMD_LOG_LEVEL
    Die maximale Protokollierstufe ausgesandter Nachrichten (Nachrichten mit einer höheren Protokollierstufe, d.h. weniger wichtige, werden unterdrückt). Sie muss (in absteigender Reihenfolge) entweder alert, crit, err, warning, notice, info, debug oder eine Ganzzahl im Bereich 0…7 sein. Siehe syslog(3) für weitere Informationen.

$SYSTEMD_LOG_COLOR
    Ein logischer Wert. Falls wahr, werden auf das TTY geschriebene Nachrichten gemäß ihrer Priorität eingefärbt.

    Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Nachrichten gemäß ihrer Protokollierungsstufe einfärben.

$SYSTEMD_LOG_TIME
    Ein logischer Wert. Falls wahr, wird den Protokollnachrichten der Konsole ein Zeitstempel vorangestellt.

    Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal oder in eine Datei geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Zeitstempel basierend auf ihren Metadaten den Nachrichten anhängen werden.

$SYSTEMD_LOG_LOCATION
    Ein logischer Wert. Falls wahr, wird den Protokollnachrichten ein Dateinamen und eine Zeilenummer in dem Quellcode, aus dem die Nachrichten stammen, vorangestellt.

    Beachten Sie, dass der Protokollierort sowieso oft als Metadaten zu den Journal-Einträgen angehängt ist. Die Aufnahme in den Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch sein.

$SYSTEMD_LOG_TARGET
    Das Ziel für Protokolliernachrichten. Entweder console (auf das angehängte TTY protokollieren), console-prefixed (auf das angehängte TTY protokollieren, aber die Protokollierstufe und »Einrichtung« voranstellen, siehe syslog(3)), kmsg (in den zirkulären Kernel-Protokollpuffer protokollieren), journal (in das Journal protokollieren (journal-or-kmsg (in das Journal protokollieren, falls verfügbar, und andernfalls nach Kmsg), auto (das geeignete Protokollierziel automatisch ermitteln, die Vorgabe) oder null (die Protokollierung deaktivieren).

$SYSTEMD_PAGER
    Zu verwendendes Textanzeigeprogramm, wenn --no-pager nicht angegeben ist; setzt $PAGER außer Kraft. Falls weder $SYSTEMD_PAGER noch $PAGER gesetzt sind, wird eine Reihe wohlbekannter Textanzeigeprogrammimplementierungen der Reihe nach ausprobiert, einschließlich less(1) und more(1), bis eines gefunden wird. Falls keine Textanzeigeprogrammimplementierung gefunden wird, wird keines aufgerufen. Setzen der Umgebungsvariablen auf die leere Zeichenkette oder den Wert »cat« ist äquivalent zur Übergabe von --no-pager.

    Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, dann wird $SYSTEMD_PAGER (sowie $PAGER) ohne Rückmeldung ignoriert.

$SYSTEMD_LESS
    Setzt die an less übergebenen Optionen (standardmäßig »FRSXMK«) außer Kraft.

    Benutzer könnten insbesondere zwei Optionen ändern wollen:

    K
        Diese Option weist das Textanzeigeprogramm an, sich sofort beim Druck von Strg-C zu beenden. Um less die Handhabung von Strg-C selbst zum Umschalten auf die Eingabeaufforderung zu erlauben, setzen Sie diese Option zurück.

        Falls der Wert von $SYSTEMD_LESS kein »K« enthält und less das aufgerufene Textanzeigeprogramm ist, wird Strg+C durch das Programm ignoriert und muss durch das Textanzeigeprogramm selbst gehandhabt werden.

    X
        Diese Option weist das Textanzeigeprogramm an, keine Termcap-Initialisierungs- und -Deinitalisierungszeichenketten an das Terminal zu senden. Dies ist standardmäßig gesetzt, damit die Darstellung von Befehlen selbst nach dem Beenden des Textanzeigeprogramms sichtbar bleibt. Allerdings stehen dadurch einige Funktionen des Textanzeigeprogramms nicht zur Verfügung; insbesondere ist das Scrollen in der Ausgabe mit der Maus nicht möglich.

    Siehe less(1) für weitere Ausführungen.

$SYSTEMD_LESSCHARSET
    Setzt den an less zu übergebenden Zeichensatz (standardmäßig »utf-8«, falls das aufrufende Terminal als UTF-8-kompatibel erkannt wurde) außer Kraft.

$SYSTEMD_PAGERSECURE
    Akzeptiert einen logischen Wert. Wenn wahr, wird der »sichere« Modus des Seitenanzeigeprogramms verwandt, falls falsch, wird dieser deaktiviert. Falls $SYSTEMD_PAGERSECURE überhaupt nicht gesetzt ist, dann wird der sichere Modus aktiviert, falls die effektive Kennung nicht identisch zu dem Eigentümer der Anmeldesitzung ist, siehe geteuid(2) und sd_pid_get_owner_uid(3). Im sicheren Modus wird LESSSECURE=1 beim Aufruf des Seitenanzeigeprogramms gesetzt und das Seitenanzeigeprogramm muss Befehle deaktivieren, die neue Dateien öffnen oder erstellen oder die einen neuen Unterprozess starten. Falls $SYSTEMD_PAGERSECURE überhaupt nicht gesetzt ist, werden Seitenanzeigeprogramme, bei denen unbekannt ist, ob sie einen sicheren Modus implementieren, nicht verwandt. (Derzeit implementiert nur less(1) einen sicheren Modus.)

    Hinweis: Wenn Befehle mit erhöhten Rechten ausgeführt werden, beispielsweise mittels sudo(8) oder pkexec(1), muss Vorsicht walten gelassen werden, um sicherzustellen, dass keine ungeplanten interaktiven Funktionalitäten aktiviert werden. Der »sichere« Modus für das Seitenanzeigeprogramm kann wie oben beschrieben automatisch aktiviert werden. Durch Setzen von SYSTEMD_PAGERSECURE=0 oder durch Nichtenfernen dieser Einstellung aus der ererbten Umgebung wird es dem Benutzer ermöglicht, beliebige Befehle auszuführen. Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt werden muss, falls die Variablen $SYSTEMD_PAGER oder $PAGER berücksichtigt werden sollen. Es kann sinnvoll sein, stattdessen den Seitenanzeiger komplett mit --no-pager zu deaktivieren.

$SYSTEMD_COLORS
    Akzeptiert ein logisches Argument. Wenn wahr, werden systemd und verwandte Hilfswerkzeuge Farben in ihrer Ausgabe verwenden, andernfalls wird die Ausgabe einfarbig sein. Zusätzlich kann die Variable eine der folgenden besonderen Werte annehmen: »16«, »256«, um die Verwendung von Farbe auf die grundlegenden 16 bzw. 256 ANSI-Farben zu beschränken. Dies kann festgelegt werden, um die auf $TERM und der vorliegenden Verbindung der Konsole basierende automatische Entscheidung außer Kraft zu setzen.

$SYSTEMD_URLIFY
    Dies muss ein logischer Wert sein. Er steuert, ob anklickbare Links für Terminal-Emulatoren, die dies unterstützen, erstellt werden sollen. Dies kann angegeben werden, um die Entscheidung, die systemd basierend auf $TERM und anderen Bedingungen trifft, außer Kraft zu setzen.

UNPRIVILEGIERTE --CLEANUP-OPERATION

systemd-tmpfiles versucht die Änderungs- und Zugriffs-Zeitstempel der Verzeichnisse zu erhalten, auf die es zugreift. Dafür sind CAP_FOWNER-Privilegien erforderlich. Wenn es nicht als Root ausgeführt wird, wird die Zugriffszeit der Verzeichnisse aktualisiert, die nach zu löschenden Dateien durchsucht werden. Dadurch kann der tatsächliche Löschvorgang verhindert werden.

EXIT-STATUS

Im Erfolgsfall wird 0 zurückgeliefert. Falls die Konfigurationsdatei syntaktisch ungültig war (Syntaxfehler, fehlende Argumente, …) und einige Zeilen ignoriert werden mussten, aber keine weiteren Fehler aufgetreten sind, wird 65 zurückgeliefert (EX_DATAERR aus /usr/include/sysexits.h). Falls die Konfiguration syntaktisch korrekt war, aber nicht ausgeführt werden konnte (unzureichende Rechte, Erstellung von Dateien in fehlenden Verzeichnissen, ungültige Inhalte beim Schreiben von /sys/-Werten, …), wird 73 zurückgeliefert (EX_CANTCREAT aus /usr/include/sysexits.h). Andernfalls wird 1 zurückgeliefert (EXIT_FAILURE aus /usr/include/stdlib.h).

Beachten Sie: Wenn Sie Elemente erstellen und das Ziel bereits existiert, aber vom falschen Typ ist oder anderweitig nicht auf den erbetenen Zustand passt und keine Zwangsaktion mit »+« erbeten wurde, dann wird eine Nachricht ausgegeben, aber der Fehlschlag wird ansonsten ignoriert.

SIEHE AUCH

systemd(1), tmpfiles.d(5)

ANMERKUNGEN

1.  Spezifikation für auffindbare Partitionen
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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).