Provided by: manpages-de_4.23.1-1_all bug

BEZEICHNUNG

       machine-id - Lokale Konfigurationsdatei zur Maschinenkennung

ÜBERSICHT

       /etc/machine-id

BESCHREIBUNG

       Die Datei /etc/machine-id enthält eine eindeutige Maschinenkennung des lokalen Systems,
       die während der Installation oder des Systemstarts gesetzt wird. Die Maschinenkennung ist
       eine einzelne, hexadezimale 32-Zeichen-Kennung (in Kleinbuchstaben), die mit einem
       Zeilenumbruch abgeschlossen wird. Nach der Dekodierung aus dem hexadezimalen entspricht
       sie einem 16-Byte/128-Bit-Wert. Diese Kennung darf nicht komplett nur aus Nullen bestehen.

       Die Maschinenkennung wird normalerweise während der Systeminstallation oder des ersten
       Systemstarts aus einer Zufallsquelle erstellt und bleibt für alle nachfolgenden
       Systemstarts konstant. Für zustandslose Systeme kann sie optional falls notwendig zur
       Laufzeit während der frühen Systemstartphase erstellt werden.

       Die Maschinenkennung kann beispielsweise beim Systemstart über das Netz mit dem
       Kernelbefehlszeilenparameter systemd.machine_id= oder durch Übergabe der Option
       --machine-id= an Systemd gesetzt werden. Eine in dieser Weise festgelegte Maschinenkennung
       hat eine höhere Priorität und wird statt der in /etc/machine-id gespeicherten Kennung
       verwandt.

       Die Maschinenkennung ändert sich nicht, wenn sich die lokale oder Netzkonfiguration ändert
       oder die Hardware ausgetauscht wird. Daher und aufgrund ihrer größeren Länge ist sie eine
       nützlichere Ersetzung des von POSIX festgelegten Aufrufs gethostid(3).

       Diese Maschinenkennung folgt dem gleichen Format und der gleichen Logik wie die
       Maschinenkennung von D-Bus.

       Diese Kennung identifiziert den Rechner eindeutig. Sie sollte »vertraulich« behandelt und
       nicht in unvertrauenswürdigen Umgebungen, insbesondere im Netz offengelegt werden. Falls
       für einige Anwendungen eine stabile Kennung, die an eine Maschine gebunden ist, benötigt
       wird, darf die Maschinenkennung oder Teile davon nicht direkt verwandt werden. Stattdessen
       sollte die Maschinenkennung mit einer kryptographischen, mit einem Schlüssel versehenen
       Funktion in einen Hash verwandelt werden, wobei ein fester, anwendungsbezogener Schlüssel
       verwandt werden sollte. Damit ist die Kennung ausreichend eindeutig und in einer
       konstanten Art und Weise von der Maschinenkennung abgeleitet, aber es gibt dann keine
       Möglichkeit, die ursprüngliche Maschinenkennung aus der anwendungsspezifischen abzuleiten.
       Das API sd_id128_get_machine_app_specific(3) stellt eine Implementierung eines solchen
       Algorithmus bereit.

INITIALISIERUNG

       Im normalen Betrieb sollte jede Maschine eine nicht leere Kennung haben. Die Kennung von
       jeder Maschine sollte eindeutig sein. Um diese Ziele zu erreichen, kann /etc/machine-id
       auf verschiedene Arten initialisiert werden.

       Für normale Betriebssysteminstallationen, bei denen ein angepasstes Abbild für eine
       bestimmte Maschine erstellt wird, sollte /etc/machine-id während der Installation befüllt
       werden.

       systemd-machine-id-setup(1) kann von Installationswerkzeugen verwandt werden, um die
       Maschinenkennung zum Installationszeitpunkt zu initialisieren, aber /etc/machine-id kann
       auch mit anderen Mitteln geschrieben werden.

       Für Betriebssystemabbilder, die einmal erzeugt und dann auf mehreren Maschinen verwandt
       werden, beispielsweise Container oder in der Cloud, sollte /etc/machine-id entweder fehlen
       oder in dem generischen Dateisystem leer sein (der Unterschied zwischen diesen zwei
       Optionen wird weiter unten unter »Semantik beim ersten Systemstart« beschrieben). Während
       des Systemstarts wird eine Kennung erstellt und falls möglich in dieser Datei gespeichert.
       An der Stelle eine leere Datei zu haben ist nützlich, da es erlaubt, eine temporäre Datei
       mittels einer Bind-Einhängung über die echte Datei zu legen, falls das Abbild nur lesend
       verwandt wird. Siehe auch Sicheres Bauen von Abbildern[1].

       systemd-firstboot(1) kann zur Initialisierung von /etc/machine-id auf eingehängten (aber
       nicht gestarteten) Systemabbildern verwandt werden.

       Wenn eine Maschine mit systemd(1) gestartet wird, wird die Kennung der Maschine etabliert.
       Falls die Optionen systemd.machine_id= oder --machine-id= (siehe ersten Abschnitt)
       angegeben werden, wird dieser Wert verwandt. Falls diese Datei leer ist oder fehlt, wird
       Systemd versuchen, die D-Bus-Maschinenkennung aus /var/lib/dbus/machine-id, den Wert der
       Kernelbefehlszeilenoption container_uuid, die KVM-DMI-product_uuid oder die Devicetree
       VM,UUID (auf KVM-Systemen), die Xen-Hypervisor-UUID und schließlich eine zufällig
       erstellte UUID zu verwenden.

       Nachdem die Maschinenkennung etabliert ist, wird systemd(1) versuchen, sie in
       /etc/machine-id zu speichern. Falls dies fehlschlägt, wird es versuchen, sie als temporäre
       Datei mittels Bind-Einhängung über /etc/machine-id zu legen. Es ist ein Fehler, falls das
       Dateisystem nur lesbar ist und keine (möglicherweise leere) Datei /etc/machine-id enthält.

       systemd-machine-id-commit.service(8) wird versuchen, die Maschinenkennung in das
       Dateisystem zu schreiben, falls /etc/machine-id oder /etc/ während der frühen
       Systemstartphase schreibgeschützt sind, aber später schreibbar werden.

SEMANTIK BEIM ERSTEN SYSTEMSTART

       /etc/machine-id wird für die Entscheidung, ob ein Systemstart der erstmalige ist,
       verwandt. Die Regeln sind wie folgt:

        1. Das Kernelbefehlsargument systemd.condition-first-boot= kann dazu verwandt werden, die
           automatische Erkennungslogik außer Kraft zu setzen, siehe kernel-command-line(7).

        2. Andernfalls, falls /etc/machine-id nicht existiert, ist dies ein erstmaliger
           Systemstart. Während der frühen Systemstartphase wird systemd »uninitialized\n« in
           diese Datei schreiben und eine temporäre Datei darüber einhängen, die die eigentliche
           Maschinenkennung enthält. Später (nachdem first-boot-complete.target erreicht wurde)
           wird die echte Maschinenkennung auf Platte geschrieben.

        3. Falls /etc/machine-id die Zeichenkette »uninitialized« enthält, wird ein Systemstart
           auch als erstmaliger Systemstart betrachtet. Der gleiche Mechanismus wie oben
           beschrieben erfolgt.

        4. Falls /etc/machine-id existiert und leer ist, dann wird ein Systemstart nicht als
           erstmaliger Systemstart betrachtet. systemd wird weiterhin eine Bind-Einhängung einer
           Datei, die die eigentliche Maschinenkennung enthält, darüber ausführen und später
           versuchen, diese auf Platte zu schreiben (falls /etc/ schreibbar ist).

        5. Falls /etc/machine-id bereits eine gültige Maschinenkennung enthält, ist dies keine
           erstmaliger Systemstart.

       Falls entsprechend der obigen Regeln ein erstmaliger Systemstart erkannt wurde, werden
       Units mit ConditionFirstBoot=yes ausgeführt und systemd wird zusätzliche
       Initialisierungsschritte durchlaufen, insbesondere das Voreinstellen von Units.

BEZUG ZU OSF UUIDS

       Beachten Sie, dass die Maschinenkennung historisch gesehen weder eine OSF-UUID, wie sie
       durch RFC 4122[2] definiert wird, noch eine Microsoft GUID ist; beginnend mit Systemd v30
       werden sich allerdings neu erstellte Maschinenkennungen als Variante 1 Version 4 UUIDs
       (gemäß RFC 4122) eignen.

       Zur Wahrung der Kompatibilität mit bestehenden Installationen sollte jede Anwendung, die
       eine streng RFC-4122-konforme UUID benötigt, die Maschinenkennung dekodieren und dann die
       nachfolgenden (nicht rückgängig machbare) Aktionen anwenden, um sie in eine gültige
       RFC-4122-Variante-1-Version-4-UUID zu wandeln (hierbei ist »id« ein vorzeichenfreies
       Zeichenfeld):

           /* UUID auf Version 4 setzen --- wirklich zufällige Erzeugung */
           id[6] = (id[6] & 0x0F) | 0x40;
           /* Die UUID-Variante auf DCE setzen */
           id[8] = (id[8] & 0x3F) | 0x80;

       (Dieser Code ist von »generate_random_uuid()« von drivers/char/random.c aus den
       Linux-Kernelquellen inspiriert.)

GESCHICHTE

       Das einfache Konfigurationsdateiformat von /etc/machine-id entspringt der durch D-Bus
       eingeführten Datei /var/lib/dbus/machine-id. Tatsächlich kann letztere Datei ein Symlink
       auf /etc/machine-id sein.

SIEHE AUCH

       systemd(1), systemd-machine-id-setup(1), gethostid(3), hostname(5), machine-info(5),
       os-release(5), sd-id128(3), sd_id128_get_machine(3), systemd-firstboot(1)

ANMERKUNGEN

        1. Sicheres Bauen von Abbildern
           https://systemd.io/BUILDING_IMAGES

        2. RFC 4122
           https://tools.ietf.org/html/rfc4122

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