.\" -*- coding: UTF-8 -*- '\" t .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MACHINE\-ID 5 "" "systemd 247" machine\-id .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH BEZEICHNUNG machine\-id \- Lokale Konfigurationsdatei zur Maschinenkennung .SH ÜBERSICHT .PP /etc/machine\-id .SH BESCHREIBUNG .PP 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\&. .PP 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\&. .PP Die Maschinenkennung kann beispielsweise beim Systemstart über das Netz mit dem Kernelbefehlszeilenparameter \fIsystemd\&.machine_id=\fP oder durch Übergabe der Option \fB\-\-machine\-id=\fP 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\&. .PP 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 \fBgethostid\fP(3)\&. .PP Diese Maschinenkennung folgt dem gleichen Format und der gleichen Logik wie die Maschinenkennung von D\-Bus\&. .PP 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 \fBsd_id128_get_machine_app_specific\fP(3) stellt eine Implementierung eines solchen Algorithmus bereit\&. .SH INITIALISIERUNG .PP 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\&. .PP 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\&. .PP \fBsystemd\-machine\-id\-setup\fP(1) kann von Installationswerkzeugen verwandt werden, um die Maschinenkennung zum Installationszeitpunkt zu initialisieren, aber /etc/machine\-id kann auch mit anderen Mitteln geschrieben werden\&. .PP 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 lesen verwandt wird\&. .PP \fBsystemd\-firstboot\fP(1) kann zur Initialisierung von /etc/machine\-id auf eingehängten (aber nicht gestarteten) Systemabbildern verwandt werden\&. .PP Wenn eine Maschine mit \fBsystemd\fP(1) gestartet wird, wird die Kennung der Maschine etabliert\&. Falls die Optionen \fIsystemd\&.machine_id=\fP oder \fB\-\-machine\-id=\fP (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 \fIcontainer_uuid\fP, die KVM\-DMI\-product_uuid oder die Devicetree vm,uuid (auf KVM\-Systemen) und schließlich eine zufällig erstellte UUID zu verwenden\&. .PP Nachdem die Maschinenkennung etabliert ist, wird \fBsystemd\fP(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\&. .PP \fBsystemd\-machine\-id\-commit.service\fP(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\&. .SH "SEMANTIK BEIM ERSTEN SYSTEMSTART" .PP /etc/machine\-id wird für die Entscheidung, ob ein Systemstart der erstmalige ist, verwandt\&. Die Regeln sind wie folgt: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Falls /etc/machine\-id nicht existiert, ist dies ein erstmaliger Systemstart\&. Während der frühen Systemstartphase wird \fBsystemd\fP »uninitialized\en« 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\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Falls /etc/machine\-id die Zeichenkette »uninitialized« enthält, wird ein Systemstart auch als erstmaliger Systemstart betrachtet\&. Der gleiche Mechanismus wie oben beschrieben erfolgt\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Falls /etc/machine\-id existiert und leer ist, dann wird ein Systemstart \fInicht\fP als erstmaliger Systemstart betrachtet\&. \fBsystemd\fP 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)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} Falls /etc/machine\-id bereits eine gültige Maschinenkennung enthält, ist dies keine erstmaliger Systemstart\&. .RE .PP Falls durch eine der obigen Regeln ein erstmaliger Systemstart erkannt wurde, werden Units mit \fIConditionFirstBoot=yes\fP ausgeführt\&. .SH "BEZUG ZU OSF UUIDS" .PP Beachten Sie, dass die Maschinenkennung historisch gesehen weder eine OSF\-UUID, wie sie durch \m[blue]\fBRFC 4122\fP\m[]\&\s-2\u[1]\d\s+2 definiert wird, noch eine Microsoft GUID ist; beginnend mit Systemd v30 werden sich allerdings neu erstellte Maschinenkennungen als v4 UUIDs eignen\&. .PP Zur Wahrung der Kompatibilität mit bestehenden Installationen sollte jede Anwendung, die eine UUID benötigt, die Maschinenkennung dekodieren und dann die nachfolgenden Aktionen anwenden, um sie in eine gültige OSF\-v4\-UUID zu wandeln (hierbei ist »id« ein vorzeichenfreies Zeichenfeld): .sp .if n \{\ .RS 4 .\} .nf /* 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; .fi .if n \{\ .RE .\} .PP (Dieser Code ist von »generate_random_uuid()« von drivers/char/random\&.c aus den Linux\-Kernelquellen inspiriert\&.) .SH GESCHICHTE .PP 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\&. .SH "SIEHE AUCH" .PP \fBsystemd\fP(1), \fBsystemd\-machine\-id\-setup\fP(1), \fBgethostid\fP(3), \fBhostname\fP(5), \fBmachine\-info\fP(5), \fBos\-release\fP(5), \fBsd\-id128\fP(3), \fBsd_id128_get_machine\fP(3), \fBsystemd\-firstboot\fP(1) .SH ANMERKUNGEN .IP " 1." 4 RFC 4122 .RS 4 \%https://tools.ietf.org/html/rfc4122 .RE .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .