SYSTEMD-VMSPAWN(1)

BEZEICHNUNG
systemd-vmspawn - Ein Betriebssystem in einer virtuellen Maschine erzeugen

ÜBERSICHT

systemd-vmspawn [OPTIONEN…] [ARG…]

BESCHREIBUNG

systemd-vmspawn kann zum Starten einer virtuellen Maschine aus einem Betriebssystemabbild verwandt werden. Es ist auf viele Arten ähnlich zu systemd-nspawn(1), startet aber eine vollständige virtuelle Maschine anstatt Namensräume zu verwenden.

Mittels der nativen Socket-Übergabeschnittstelle (siehe sd_listen_fds(3) zu Details über das genau verwandte Protokoll und die Reihenfolge, in der Dateideskriptoren übergeben werden) können Dateideskriptoren für /dev/kvm und /dev/vhost-vsock übergeben werden. Diese Dateideskriptoren müssen mit den Namen »kvm« bzw. »vhost-vsock« übergeben werden.

Hinweis: Auf Systemen, die von Ubuntu/Debian abgeleitet sind, muss der Benutzer in der Gruppe »kvm« sein, damit er die VSOCK-Optionen verwenden kann und systemd-vmspawn funktioniert.

OPTIONEN

Überschüssige Argumente werden als zusätzliche Kernelbefehlszeilenargumente mittels SMBIOS weitergegeben.

Die folgenden Optionen werden verstanden:

-q, --quiet
    Schaltet jegliche Statusausgabe durch das Werkzeug selbst ab. Wenn dieser Schalter verwandt wird, wird die einzige Konsolenausgabe die des Betriebssystems der virtuellen Maschine selbst sein.

    Hinzugefügt in Version 256.

  Abbildoptionen

-D, --directory=
    Verzeichnis, das als Wurzel für die virtuelle Maschine verwandt werden soll.

    Es muss entweder --directory= oder --image= angegeben werden. Falls keines angegeben ist, wird --directory=. angenommen.

    Hinweis: Falls Sie ein Verzeichnis einhängen, das einem anderen Benutzer (nicht root) gehört, könnte die Option --private-users= notwendig sein, um in den Subuid-Namensraum des Benutzer abzubilden. Später folgt ein Beispiel, wie /etc/subuid dafür verwandt werden kann.

    Hinzugefügt in Version 256.

-i, --image=
    Wurzeldateisystem-Plattenabbild (oder Geräteknoten) für die virtuelle Maschine.

    Hinzugefügt in Version 255.

  Rechnerkonfiguration

--cpus=CPUS
    Die Anzahl der CPUs, mit der die virtuelle Maschine gestartet werden soll. Standardmäßig 1.

    Hinzugefügt in Version 255.

--ram=BYTE
    Die Speichermenge, mit der die virtuelle Maschine gestartet werden soll. Standardmäßig 2GB.

    Hinzugefügt in Version 255.

--kvm=LOGISCH
    Falls --kvm= nicht angegeben wird, wird die Unterstützung für KVM automatisch erkannt. Falls true, wird KVM immer verwandt, und falls false, wird KVM niemals verwandt.

    Hinzugefügt in Version 255.

--vsock=LOGISCH
    Falls --vsock= nicht angegeben wird, wird die Unterstützung für VSOCK-Vernetzung automatisch erkannt. Falls true, wird VSOCK-Vernetzung immer verwandt, und falls false, wird VSOCK-Vernetzung niemals verwandt.

    Hinzugefügt in Version 255.

--vsock-cid=CID
    Setzt die angegebene CID für die Verwendung durch den Gast. Gültige CIDs sind im Bereich 3 bis 4294967294 (0xFFFF_FFFE). CIDs außerhalb dieses Bereichs sind reserviert. Standardmäßig wird Vmspawn versuchen, eine CID für den Gast abgeleitet vom Maschinennamen abzuleiten, und fällt auf eine zufällig CID zurück, falls diese CID bereits genommen wurde.

    Hinzugefügt in Version 255.

--tpm=LOGISCH
    Falls --tpm= nicht angegeben ist, wird Vmspawn die Existenz von swtpm(8) erkennen und es, falls verfügbar, verwenden. Falls »yes« angegeben ist, wird swtpm(8) immer benutzt, falls »no« gesetzt ist, wird swtpm(8) niemals benutzt.

    Hinzugefügt in Version 256.

--tpm-state=PFAD|auto|off
    Konfiguriert, wo der TPM-Zustand abgelegt werden soll, falls TPM-Unterstützung aktiviert ist (siehe --tpm= weiter oben). Dies akzeptiert einen absoluten Dateisystempfad zu einem Verzeichnis, in dem der Zustand dauerhaft abgelegt werden soll. Falls das Verzeichnis nicht existiert, wird es nach Bedarf erzeugt. Falls auf die besondere Zeichenkette »auto« gesetzt, wird ein dauerhafter Pfad automatisch von dem VM-Abbildpfad oder -Verzeichnispfad abgeleitet, wobei die Endung ».tpmstate« angehängt wird. Falls auf die besondere Zeichenkette »off« gesetzt, wird der VM-Zustand nur vorübergehend beibehalten und verworfen, wenn die VM heruntergefahren wird. Dieser Modus ist nicht für VMs geeignet, die Plattenverschlüsselung an TPMs koppeln, da diese Schlüssel bei jedem Neustart verloren gehen. Standardmäßig »auto«.

    Hinzugefügt in Version 258.

--linux=PFAD
    Setzt das für direkten Kernelsystemstart zu verwendende Kernelabbild. Falls ein verzeichnisartiges Abbild verwandt wird und --linux= nicht angegeben wurde, wird Vmspawn nach Systemstartladereinträgen entsprechend der UAPI.1-Systemstartladerspezifikation[1] unter der Annahme, dass sich XBOOTLDR unter /boot bzw. ESP unter /efi befindet, suchen. Falls im Abbild kein Kernel installiert wurde, dann wird der Systemstart des Abbilds fehlschlagen.

    Hinzugefügt in Version 256.

--initrd=PFAD
    Setzt eine für den direkten Kernelsystemstart zu verwendende Initrd. Falls das angegebene --linux= ein Typ-#2-Eintrag gemäß der UAPI.1-Systemstartladerspezifikation[1] ist, dann wird dieses Argument nicht benötigt. Falls im Abbild keine Initrd installiert wurde, dann wird der Systemstart des Abbilds fehlschlagen.

    --initrd= kann mehrfach angegeben werden und Vmspawn wird sie zusammenführen.

    Hinzugefügt in Version 256.

-n, --network-tap
    Erstellt ein TAP-Gerät für die Vernetzung mit der virtuellen Maschine.

    Beachten Sie: Für die Verwendung von TAP-Vernetzung werden Root-Rechte benötigt. Zusätzlich muss systemd-networkd(8) laufen und auf dem Hauptrechner korrekt eingerichtet sein, um die Schnittstelle bereitzustellen. Die relevante ».network«-Datei kann unter /usr/lib/systemd/network/80-vm-vt.network gefunden werden.

    Hinzugefügt in Version 255.

--network-user-mode
    Benutzermodus-Vernetzung verwenden.

    Hinzugefügt in Version 255.

--firmware=PFAD
    Akzeptiert einen absoluten Pfad oder einen relativen Pfad, der mit ./. beginnt. Legt eine JSON-Firmware-Definitionsdatei fest, die die Auswahl der Firmware ermöglicht, mit der in die VM gestartet wird. Falls nicht angegeben, wird eine geeignete Firmware automatisch erkannt. Falls die besondere Zeichenkette »list« angegeben ist, werden alle erkannten Firmwaren aufgelistet.

    Hinzugefügt in Version 256.

--discard-disk=LOGISCH
    Steuert, ob Qemu-Prozesse Anfragen von der VM verwerfen. Dies verhindert, dass langlaufende VMs mehr Plattenplatz als benötigt verwenden. Dies ist standardmäßig aktiviert.

    Hinzugefügt in Version 256.

--secure-boot=LOGISCH
    Konfiguriert, ob nach Firmware gesucht werden soll, die sicheren Systemstart unterstützt.

    Falls diese Option nicht angegeben ist, wird die erste erkannte Firmware verwandt. Falls diese Option auf »yes« gesetzt ist, dann wird die erste Firmware mit Unterstützung für sicheren Systemstart ausgewählt. Falls »no« angegeben ist, dann wird die erste Firmware ohne sicheren Systemstart ausgewählt.

    Hinzugefügt in Version 255.

--grow-image=BYTE, -G BYTE
    Vergrößert das durch --image= angegebene Abbild auf die angegebene Größe in Byte, falls es kleiner ist. Es wird keine Aktion durchgeführt, falls keine Abbilddatei verwandt wird oder die Datei bereits so groß (oder größer als) angefordert ist. Die angegebene Größe akzeptiert die normalen Endungen K, M, G (zur Basis 1024). Angegebene Werte werden auf Vielfaches von 4096 aufgerundet.

    Hinzugefügt in Version 258.

--smbios11=ZEICHENKETTE, -s ZEICHENKETTE
    Übergibt die angegebene Zeichenkette als SMBIOS-Typ-#11-Lieferantenzeichenkette an die VM. Dies ist für die Parametrisierung der aufgerufenen VM auf verschiedene Arten nützlich. Weitere Details finden Sie in smbios-type-11(7).

    Hinzugefügt in Version 258.

--notify-ready=
    Konfiguriert Unterstützung für Benachrichtigungen aus dem Init-Prozess der VM an systemd-vmspawn. Falls true, wird systemd-vmspawn erst als bereit betrachten, wenn es eine Meldung »READY=1« aus dem Init-Prozess in der VM erhalten hat. Falls false, wird systemd-vmspawn die Maschine direkt nach der Erstellung als bereit betrachten. In beiden Fällen sendet systemd-vmspawn seine eigene Bereitschaftsbenachrichtigung an seinen Verwalteter, nachdem die erzeugte VM bereit ist. Weitere Details zur Benachrichtigung finden Sie in sd_notify(3).

    Standardmäßig true. (Beachten Sie, dass dies anders als die Option mit gleichem Namen in systemd-vmspawn(1) ist, deren Vorgabe false ist.)

    Hinzugefügt in Version 258.

  Systemidentitätsoptionen

-M, --machine=
    Setzt den Maschinennamen für diese virtuelle Maschine. Dieser Name kann zur Identifizierung dieser virtuellen Maschine während seiner Laufzeit verwandt werden (beispielsweise in Werkzeugen wie machinectl(1) und ähnlichen).

    Hinzugefügt in Version 255.

--uuid=
    Setzt die angegebene UUID für die virtuelle Maschine. Das Init-System wird /etc/machine-id daraus initialisieren, falls diese Datei noch nicht gesetzt ist. Beachten Sie, dass diese Option nur wirksam wird, falls /etc/machine-id in der virtuellen Maschine noch nicht befüllt ist.

    Hinzugefügt in Version 256.

  Eigenschaftsoptionen

-S, --slice=
    Fügt die VM zu der angegebenen Scheibe hinzu, anstelle von machine.slice. Dies gilt nur, wenn die Maschine in ihrer eigenen Bereichs-Unit ausgeführt wird, d.h. falls --keep-unit nicht verwandt wird.

    Hinzugefügt in Version 258.

--property=
    Setzt eine Unit-Eigenschaft auf der Bereichs-Unit zur Registrierung für die Maschine. Dies gilt nur, falls die Maschine in ihrer eigenen Bereichs-Unit ausgeführt wird, d.h. falls --keep-unit nicht verwandt wird. Akzeptiert eine Bereichs-Zuweisung in dem gleichen Format wie systemctl set-property. Dies ist zum Setzen von Speicherbegrenzungen und ähnlichem für die VM nützlich.

    Hinzugefügt in Version 258.

--register=
    Steuert, ob die virtuelle Maschine mit systemd-machined(8) registriert wird. Akzeptiert ein logisches Argument, das standardmäßig »yes« ist, wenn die Ausführung als root erfolgt und »no« bei einem regulären Benutzer. Dies stellt sicher, dass mit machinectl(1) auf die virtuelle Maschine zugegriffen werden kann.

    Beachten Sie: Root-Rechte werden für diese Option benötigt, da das Registrieren mit systemd-machined(8) privilegierte D-Bus-Methodenaufrufe benötigt.

    Hinzugefügt in Version 256.

  Benutzer-Namensraum-Optionen

--private-users=UID_VERSCHUB[:UID_BEREICH]
    Steuert die Benutzer-Namensraumnutzung unter --directory=. Falls aktiviert, wird virtiofsd(1) angewiesen, die Benutzer- und Gruppenkennungen (UIDs und GIDs) abzubilden. Dies bezieht die Abbildung der in der virtuellen Maschine verwandten privaten UIDs/GIDs ein (beginnend mit dem Benutzer root 0 und höher in der virtuellen Maschine) bis zu einem Bereich von UIDs/GIDs auf der Hauptmaschine, die nicht für andere Zwecke verwandt werden (normalerweise in dem Bereich hinter der UID/GID 65536 auf der Hauptmaschine).

    Falls eine oder zwei, durch Doppelpunkt getrennte Zahlen angegeben werden, wird Benutzer-Namensraumnutzung eingeschaltet. UID_VERSCHUB legt die erste auf dem Hauptrechner abzubildende UID/GID fest, UID_BEREICH ist optional und gibt die Anzahl der auf der Hauptmaschine an die virtuelle Maschine zuzuweisenden UIDs/GIDs an. Falls UID_BEREICH ausgelassen wird, werden 65536 UIDs/GIDs zugewiesen.

    Wenn Benutzernamensräume verwandt werden, wird der jeder virtuellen Maschine zugewiesene GID-Bereich so gewählt, dass er immer identisch zum UID-Bereich ist.

    Hinzugefügt in Version 256.

  Einhänge-Optionen

--bind=PFAD, --bind-ro=PFAD
    Hängt ein Verzeichnis von der Hauptmaschine in die virtuelle Maschine ein. Akzeptiert entweder ein Pfadargument – in diesem Fall wird der angegebene Pfad von der Hauptmaschine in den gleichen Pfad in der virtuellen Maschine eingehängt – oder ein Doppelpunkt-getrenntes Paar an Pfaden – in diesem Fall ist der erste angegebene Pfad die Quelle in der Hauptmaschine und der zweite Pfad das Ziel in der virtuellen Maschine. Falls der Quellpfad nicht absolut ist, wird er relativ zum aktuellen Arbeitsverzeichnis aufgelöst. Die Option --bind-ro= erstellt schreibgeschützte Bind-Einhängungen. Rückwärtsschrägstrich-Maskierungen werden interpretiert, so dass »\:« zum Einbetten von Doppelpunkten in die Pfade verwandt werden kann. Diese Option kann mehrfach angegeben werden, um mehrere unabhängige Bind-Einhängepunkte zu erstellen.

    Hinzugefügt in Version 256.

--extra-drive=PFAD
    Akzeptiert ein Plattenabbild oder Blockgerät auf der Hauptmaschine und stellt es der virtuellen Maschine als weiteres Laufwerk zur Verfügung.

    Hinzugefügt in Version 256.

--bind-user=
    Bindet das Home-Verzeichnis des angegebenen Benutzers auf dem Hauptrechner in die virtuelle Maschine. Akzeptiert den Namen eines bestehenden Benutzers auf der Hauptmaschine als Argument. Kann mehrfach verwandt werden, um mehrere Benutzer in die virtuelle Maschine zu binden. Dies macht zwei Dinge:

        1. Das Home-Verzeichnis des Benutzers vom Hauptrechner wird unter /run/vmhost/home/ mittels Virtiofs verfügbar gemacht. Die Kennungsübersetzung von Virtiofsd wird zur Abbildung der UID/GID des Hauptrechners auf die zugewiesenen UID/GID in der virtuellen Maschine verwandt.

        2. Es werden JSON-Benutzer- und -Gruppendatensätze erstellt, die die abgebildeten Benutzer, die in die virtuelle Maschine mittels »userdb.transient.*« übergeben werden, beschreiben. Sie enthalten eine minimierte Darstellung des Benutzerdatensatzes des Hauptrechners, angepasst auf die UID/GID und den Home-Verzeichnispfad, der dem Benutzer in der virtuellen Maschine zugewiesen ist. Das Glibc-NSS-Modul nss-systemd(8) wird diese Datensätze dort aufnehmen und sie in der Benutzer-/Gruppendatenbank der virtuellen Maschine zur Verfügung stellen.

    Die Kombination der zwei obigen Aktionen stellt sicher, dass es möglich ist, sich in der virtuellen Maschine mit den gleichen Kontoinformationen wie auf der Hauptmaschine anzumelden. Der Benutzer wird nur vorübergehend abgebildet, während die virtuelle Maschine läuft, und die Abbildung selbst führt zu keiner dauerhaften Änderungen an der virtuellen Maschine (außer ggf. der bei der Anmeldung erstellten Protokollmeldungen und ähnlichem). Beachten Sie insbesondere, dass die UID/GID-Zuweisung in der virtuellen Maschine nicht dauerhaft ist. Falls der Benutzer vorübergehend abgebildet wird, ist es am besten, dem Benutzer dauerhafte Änderungen an der virtuellen Maschine zu verbieten. Falls der Benutzer Dateien oder Verzeichnisse, die dem Benutzer gehören, hinterlässt und diese UIDs/GIDs während späterer Aufrufe der virtuellen Maschine wiederbenutzt werden (möglicherweise mit einer anderen Abbildung --bind-user=), kann der »neu« Benutzer auf diese Dateien und Verzeichnisse zugreifen.

    Die Benutzer-/Gruppendatensatz-Abbildung funktioniert nur, wenn die virtuelle Maschine Systemd 258 oder neuer enthält, wobei nss-systemd(8) geeignet in nsswitch.conf konfiguriert ist. Weitere Details finden Sie in nss-systemd(8).

    Beachten Sie, dass der vom Hauptrechner in die virtuelle Maschine weitergeleitete Benutzerdatensatz den UNIX-Passwort-Hash des Benutzer enthält, so dass nahtlose Anmeldungen in der virtuellen Maschine möglich sind. Falls der virtuellen Maschine weniger als dem Hauptrechner vertraut wird, ist es daher wichtig, eine starke UNIX-Passwort-Hash-Funktion zu verwenden (z.B. yescrypt oder ähnliches, mit dem Hash-Präfix »$y$«).

    Hinzugefügt in Version 259.

--bind-user-shell=
    Bei der Verwendung mit --bind-user= wird die angegebene Shell in die Benutzerdatensätz der in die virtuelle Maschine eingebundenen Benutzer aufgenommen. Akzeptiert entweder einen logischen Wert oder einen absoluten Pfad.

        • Falls false (die Vorgabe), wird keine Shell in den Benutzerdatensätzen für Benutzer übergeben, die in die virtuelle Maschine eingebunden sind. Damit werden eingebundene Benutzer die Standard-Shell der virtuellen Maschine verwenden.

        • Falls true werden die durch die Benutzerdatensätze des Hauptrechners festgelegten Shells in die Benutzerdatensätze aller in die virtuelle Maschine eingebundenen Benutzer aufgenommen.

        • Falls ein absoluter Pfad übergeben wird, wird dieser Pfad als Shell für Benutzerdatensätze aller in die virtuelle Maschine eingebundenen Benutzer gesetzt.

    Hinweis: Dies prüft nicht, ob die angegebenen Shells in der virtuellen Maschine existieren.

    Diese Aktion wird nur in Kombination mit --bind-user= unterstützt.

    Hinzugefügt in Version 259.

--bind-user-group=NAME
    Bei der Verwendung mit --bind-user= wird die angegebene Gruppe als eine Hilfsgruppe in den Benutzerdatensatz des in die virtuelle Maschine eingebundenen Benutzers aufgenommen. Akzeptiert einen Gruppennamen.

    Hinweis: Dies prüft nicht, ob die angegebenen Gruppen in der virtuellen Maschine existieren.

    Diese Aktion wird nur in Kombination mit --bind-user= unterstützt.

    Hinzugefügt in Version 259.

  Integrationsoptionen

--forward-journal=DATEI|VERZ
    Leitet das Journal der virtuellen Maschine an die Hauptmaschine weiter. Derzeit wird systemd-journal-remote(8) verwandt, um die weitergeleiteten Journal-Einträge des Gasts zu empfangen. Diese Option bestimmt, wo das Journal auf der Hauptmaschine empfangen wird und sie hat die gleiche Semantik wie sie für -o/--output in systemd-journal-remote(8) beschrieben ist.

    Hinzugefügt in Version 256.

--pass-ssh-key=LOGISCH
    Standardmäßig wird ein SSH-Schlüssel erstellt, um es systemd-vmspawn zu erlauben, eine D-Bus-Verbindung zu dem Systemd-Bus der VM aufzubauen. Durch Setzen auf »no« wird die SSH-Schlüsselerstellung deaktiviert.

    Die erstellten Schlüssel sind kurzlebig. Das bedeutet, dass sie nur für den aktuellen Aufruf von systemd-vmspawn gültig sind und typischerweise nicht dauerhaft bestehen.

    Hinzugefügt in Version 256.

--ssh-key-type=TYP
    Konfiguriert die Art der zu erstellenden SSH-Schlüssel, siehe ssh-keygen(1) für weitere Informationen.

    Standardmäßig werden »ed25519«-Schlüssel erstellt, allerdings könnten »rsa«-Schlüssel auch nützlich sein, falls die VM eine bessonders alte Version von sshd(8) verwendet.

    Hinzugefügt in Version 256.

  Ein-/Ausgabe-Optionen

--console=MODUS
    Konfiguriert, wie die Konsole der VM eingerichtet werden soll. Akzeptiert entweder »interactive«, »read-only«, »native« oder »gui«. Standardmäßig »interactive«. »interactive« stellt eine interaktive Terminalschnittstelle zu der VM bereit. »read-only« ist ähnlich, aber streng schreibgeschützt, d.h. sie akzeptiert keinerlei Eingabe vom Benutzer. »native« stellt auch eine TTY-basierte Schnittstelle bereit, verwendet aber die native Implementierung von Qemu (was bedeutet, dass der Qemu-Monitor verfügbar ist). »gui« zeigt die graphische Oberfläche von Qemu.

    Hinzugefügt in Version 256.

--background=FARBE
    Ändert die Terminal-Hintergrundfarbe auf die angegebene ANSI-Farbe, solange die VM läuft. Die angegebene Farbe sollte eine ANSI-X3.64-SGR-Hintergrundfarbe sein, d.h. Zeichenketten wie »40«, »41«, …, »47«, »48;2;…«, »48;5;…«. Siehe ANSI-Maskier-Code (Wikipedia)[2] zu Details. Weisen Sie eine leere Zeichenkette zu, um jegliche Einfärbung zu deaktivieren. Dies hat nur in den Modi --console=interactive und --console=read-only Auswirkungen.

    Hinzugefügt in Version 256.

  Zugangsdaten

--load-credential=KENNUNG:PFAD, --set-credential=KENNUNG:WERT
    Gibt ein Zugangsdatum an die virtuelle Maschine. Diese zwei Optionen entsprechend den Einstellungen LoadCredential= und SetCredential= in Unit-Dateien. Siehe systemd.exec(5) zu Details über diese Konzepte, sowie die Syntax der Argumente der Optionen.

    Um Binärdaten in die Zugangsdaten für --set-credential= einzubetten, verwenden Sie C-artige Maskierung (d.h. »\n« für einen eingebetteten Zeilenumbruch oder »\x00«, um ein Nullbyte (NUL) einzubetten). Beachten Sie, dass die aufrufende Shell die Maskierungen bereits einmal entfernt haben könnte, daher könnte eine doppelte Maskierung notwendig sein!

    Hinzugefügt in Version 255.

  Andere

--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.

--no-ask-password
    Befragt den Benutzer nicht für Authentifizierung für privilegierte Aktionen.

UMGEBUNGSVARIABLEN

$SYSTEMD_LOG_LEVEL
    Die maximale Protokollierstufe für ausgegebene Meldungen (Meldungen mit einer höheren Protokollierstufe, d.h. weniger wichtige, werden unterdrückt). Akzeptiert eine Kommata-getrennte Liste von Werten. Ein Wert kann einer der folgenden sein (in Reihenfolge absteigender Bedeutung): emerg, alert, crit, err, warning, notice, info, debug oder eine Ganzzahl im Bereich 0…7. Siehe syslog(3) für weitere Informationen. Jedem Wert kann optional eine Zeichenkette aus console, syslog, kmsg oder journal gefolgt von einem Doppelpunkt vorangestellt werden, um die maximale Protokollierstufe für dieses spezielle Protokollierziel zu setzen (d.h. SYSTEMD_LOG_LEVEL=debug,console:info legt fest, dass auf der Stufe »debug« protokolliert werden soll, außer beim Protokollieren auf die Konsole, die auf Stufe »info« erfolgen soll). Beachten Sie, dass die globale maximale Protokollierstufe Priorität gegenüber jeder zielbezogenen maximalen Protokollierstufe hat.

$SYSTEMD_LOG_COLOR
    Ein logischer Wert. Falls true, 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 true, 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.

$SYSTEMD_LOG_LOCATION
    Ein logischer Wert. Falls true, wird den Protokollnachrichten ein Dateiname 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_TID
    Ein logischer Wert. Falls true, wird den Nachrichten die aktuelle numerische Thread-Kennung (TID) vorangestellt.

    Beachten Sie, dass diese Informationen sowieso als Metadaten an Journal-Einträge angehängt wird. Die Aufnahme direkt im Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen 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_LOG_RATELIMIT_KMSG
    Ob Kmsg ratenlimitiert werden soll oder nicht. Akzeptiert einen logischen Wert. Standardmäßig »true«. Falls deaktiviert, wird Systemd die nach Kmsg geschriebenen Meldungen nicht ratenlimitieren.

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

    Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, können $SYSTEMD_PAGER und $PAGER nur zum Deaktivieren des Seitenanzeigeprogramms (mit »cat« oder »«) verwandt werden und werden ansonsten 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.

    Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESS keine Auswirkungen auf die Ausführung von less(1) durch systemd(1)-Werkzeuge hat.

    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.

    Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESSCHARSET keine Auswirkungen auf die Ausführungen von less(1) durch systemd(1)-Werkzeuge hat.

$SYSTEMD_PAGERSECURE
    Typische Seitenanzeigeprogramme wie less(1) unterstützen nebem dem seitenweisen Anzeigen (d.h. dem Durchlaufen der Ausgabe) das Öffnen von oder Schreiben in andere Dateien und die Ausführung von beliebigen Shell-Befehlen. Werden Befehle mit erhöhten Berechtigungen, beispielsweise unter sudo(8) oder pkexec(1), aufgerufen, wird das Seitenanzeigeprogramm zur Sicherheitsgrenze. Es muss darauf geachtet werden, dass nur Programme mit streng begrenzter Funktionalität als Seitenanzeigeprogramm verwandt werden und unerwünschte interaktive Funktionalitäten wie das Öffnen oder Erstellen von neuen Dateien oder das Starten von Subprozessen nicht erlaubt sind. Der »Sichere Modus« für das Seitenanzeigeprogramm kann wie nachfolgend beschrieben aktiviert werden, falls das Seitenanzeigeprogramm dies unterstützt (die meisten Seitenanzeigeprogramme sind nicht so geschrieben, dass sie dies berücksichtigen). Es wird empfohlen, den »Sicheren Modus« explizit zu aktivieren oder das Seitenanzeigeprogramm komplett mittels --no-pager oder PAGER=cat zu deaktivieren, wenn nicht vertrauenswürdigen Benutzern die Ausführung von Programmen mit erhöhten Privilegien erlaubt wird.

    Diese Option akzeptiert ein logisches Argument. Ist es auf »true« gesetzt, wird der »Sichere Modus« des Seitenanzeigeprogramms aktiviert. Im »Sicheren Modus« wird LESSSECURE=1 beim Aufruf des Seitenanzeigeprogramms gesetzt. Dies weist das Seiteanzeigeprogramm an, Befehle zum Öffnen oder Erstellen von neuen Dateien sowie das Starten von Subprozessen zu deaktivieren. Derzeit ist nur von less(1) bekannt, dass es diese Variable versteht und den »Sicheren Modus« implementiert.

    Ist diese Variable auf »false« gesetzt, unterliegt das Seitenanzeigeprogramm keinen Beschränkungen. Setzen auf SYSTEMD_PAGERSECURE=0 oder das Beibehalten der Variable von der geerbten Umgebung könnte den Benutzern die Ausführung beliebiger Befehle erlauben.

    Ist $SYSTEMD_PAGERSECURE nicht gesetzt, versuchen die Systemd-Werkzeuge automatisch herauszufinden, ob der »Sicheren Modus« aktiviert werden soll und ob das Seitenanzeigeprogramm dies unterstützt. Der »Sichere Modus« wird aktiviert, falls die effektive UID nicht mit der UID des Eigentümers der Anmeldesitzung übereinstimmt, siehe geteuid(2) und sd_pid_get_owner_uid(3), oder wenn die Ausführung unter Werkzeugen wie sudo(8) oder ähnlichem erfolgt ($SUDO_UID ist gesetzt [3]). In diesen Fällen wird SYSTEMD_PAGERSECURE=1 gesetzt und Seitenanzeigeprogramme, von denen nicht bekannt ist, dass sie den »Sicheren Modus« unterstützen, werden überhaupt nicht verwandt. Beachten Sie, dass diese automatische Erkennung nur die typischsten Mechanismen zur Erlangung von Privilegien abdeckt und dem Komfort dient. Es wird empfohlen, explizit $SYSTEMD_PAGERSECURE zu setzen oder das Seitenanzeigeprogramm zu deaktivieren.

    Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt sein muss, damit die Variablen $SYSTEMD_PAGER oder $PAGER (außer zum Deaktivieren des Seitenanzeigeprogramms) berücksichtigt werden.

$SYSTEMD_COLORS
    Akzeptiert ein logisches Argument. Wenn true, 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.

BEISPIELE

Beispiel 1. Ausführen eines durch Mkosi erstellten Arch-Linux-VM-Abbildes

    $ mkosi -d arch -p systemd -p linux --autologin -o image.raw -f build
    $ systemd-vmspawn --image=image.raw

Beispiel 2. Ein Fedora-43-Cloud-Abbild mittels machinectl importieren und ausführen

    $ curl -L \
           -O https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-Base-43-1.6.x86_64.raw.xz \
           -O https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-43-1.6-x86_64-CHECKSUM \
           -O https://fedoraproject.org/fedora.gpg
    $ gpgv --keyring ./fedora.gpg Fedora-Cloud-43-1.6-x86_64-CHECKSUM
    $ sha256sum -c Fedora-Cloud-43-1.6-x86_64-CHECKSUM
    # machinectl import-raw Fedora-Cloud-Base-43-1.6.x86_64.raw.xz fedora-43-cloud
    # systemd-vmspawn -M fedora-43-cloud

Beispiel 3. Systemds Systemabbild bauen und ausführen und das Journal der VM in eine lokale Datei weiterleiten

    $ mkosi build
    $ systemd-vmspawn \
        -D mkosi.output/system \
        --private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
        --linux mkosi.output/system.efi \
        --forward-journal=vm.journal \
        enforcing=0

Hinweis: Dieses Beispiel verwendet ein Kernelbefehlszeilenargument um sicherzustellen, dass SELinux nicht im Erzwingungsmodus startet.

Beispiel 4. SSH in eine laufende VM mittels systemd-ssh-proxy

    $ mkosi build
    $ my_vsock_cid=3735928559
    $ systemd-vmspawn \
        -D mkosi.output/system \
        --private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
        --linux mkosi.output/system.efi \
        --vsock-cid $my_vsock_cid \
        enforcing=0
    $ ssh root@vsock/$my_vsock_cid -i /run/user/$UID/systemd/vmspawn/machine-*-system-ed25519

EXIT-STATUS

Falls ein Fehler auftrat, wird der Wert Errno an den Rückgabe-Code weitergeleitet. Falls durch das laufende Abbild EXIT_STATUS bereitgestellt wird, wird dies zurückgegeben. Andernfalls wird EXIT_SUCCESS zurückgegeben.

SIEHE AUCH

systemd(1), mkosi(1), machinectl(1), importctl(1), UAPI.1-Systemstartladerspezifikation[1]

ANMERKUNGEN

1.  UAPI.1-Systemstartladerspezifikation
    https://uapi-group.org/specifications/specs/boot_loader_specification

2.  ANSI-Maskier-Code (Wikipedia)
    https://en.wikipedia.org/wiki/ANSI_escape_code#Select_Graphic_Rendition_parameters

3.  Es wird für andere Werkzeuge empfohlen, $SUDO_UID geeignet zu setzen und zu überprüfen und es als allgemeine Schnittstelle zu behandeln.

Ü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 (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.