oracular (5) machine-id.5.gz

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