udev

UDEV(7)                               udev                               UDEV(7)



BEZEICHNUNG
       udev - Dynamische Geräteverwaltung

BESCHREIBUNG
       Udev versorgt die Systemsoftware mit Gereäteereignissen, verwaltet
       Berechtigungen von Geräteknoten und kann zusätzliche Symlinks im
       Verzeichnis /dev erstellen oder Netzwerkschnittstellen umbenennen. Der
       Kernel weist normalerweise bloß nicht vorhersagbare Gerätenamen basierend
       auf der Reihenfolge der Erkennung zu. Symlinks oder Netzwerkgerätenamen
       mit Bedeutung stellen eine Möglichkeit bereit, Geräte zuverlässig
       basierend auf ihren Eigenschaften oder der aktuellen Konfiguration zu
       identifizieren.

       Immer wenn ein Gerät dem System hinzugefügt oder aus ihm entfernt wird
       oder wenn sich sein Zustand ändert, empfängt der Udev-Daemon
       systemd-udevd.service(8) ein Geräte-Uevent direkt vom Kernel. Wenn Udev
       ein Geräteereignis empfängt, prüft es seinen Satz an Konfigurationsregeln
       gegen die verschiedenen Geräteattribute, um das Gerät zu identifizieren.
       Passende Regeln können zur Speicherung von zusätzliche
       Geräteinformationen in der Udev-Datenbank führen oder zur Erstellung von
       aussagekräftigen Symlinknamen verwandt werden.

       Alle von Udev verarbeiteten Geräteinformationen werden in der
       Udev-Datenbank gespeichert und an mögliche Ereignis-Abonnenten gesandt.
       Zugriff auf alle gespeicherten Daten und die Ereignisquellen werden durch
       die Bibliothek libudev bereitgestellt.

REGELDATEIEN
       Die Udev-Regeln werden aus Dateien, die sich in den
       Systemregelverzeichnissen /usr/lib/udev/rules.d und
       /usr/local/lib/udev/rules.d, dem flüchtigen Laufzeitverzeichnis
       /run/udev/rules.d und dem lokalen Administrationsverzeichnis
       /etc/udev/rules.d befinden, gelesen. Alle Regeldateien werden gemeinsam
       sortiert und in lexikalischer Reihenfolge verarbeitet, unabhängig von den
       Verzeichnissen, in denen sie sich befinden. Allerdings ersetzen Dateien
       mit identischen Dateinamen einander. Dateien in /etc haben die höchste
       Priorität, Dateien in /run haben Vorrang vor Dateien mit dem gleichen
       Namen unter /usr. Damit kann bei Bedarf eine vom System bereitgestellte
       Regeldatei mit einer lokalen Datei außer Kraft gesetzt werden, ein
       Symlink in /etc mit dem gleichen Namen wie eine Regeldatei in /usr/lib,
       der auf /dev/null zeigt, deaktiviert die Regeldatei komplett.
       Regeldateien müssen die Erweiterung .rules tragen; andere Erweiterungen
       werden ignoriert.

       Jede Zeile in der Regeldatei enthält mindestens ein Schlüssel-Wert-Paar.
       Ausnahmen sind nur leere Zeilen und Zeilen, die mit »#« beginnen; diese
       werden ignoriert. Es gibt zwei Arten von Schlüsseln: Übereinstimmung und
       Zuweisung. Falls alle Übereinstimmungsschlüssel mit ihren Werten
       übereinstimmen, werden die Regeln angewandt und die Zuweisungsschlüssel
       erhalten die festgelegten Werte zugewiesen.

       Eine Übereinstimmungsregel kann eine Netzwerkschnittstelle umbenennen,
       Symlinks hinzufügen, die auf Geräteknoten zeigen oder ein bestimmtes
       Programm als Teil der Ereignisverarbeitung ausführen.

       Eine Regel besteht aus einer Kommata-getrennten Liste von einem oder
       mehreren Schlüssel-Wert-Paaren. Jeder Schlüssel hat eine eindeutige
       Aktion, abhängig vom verwandten Operator. Gültige Operatoren sind:

       "=="
           Prüft auf Gleichheit.

       "!="
           Prüft auf Ungleichheit.

       "="
           Weist einen Wert einem Schlüssel zu. Schlüssel, die eine Liste
           darstellen, werden zurückgesetzt und nur dieser einzelne Wert wird
           zugewiesen.

       "+="
           Fügt einen Wert zu einem Schlüssel, der eine Liste von Einträgen
           hält, hinzu.

       "-="
           Entfernt einen Wert von einem Schlüssel, der eine Liste von Einträgen
           hält.

       ":="
           Weist einem Schlüssel abschließend einen Wert zu; spätere Änderungen
           werden nicht erlaubt.

       Die nachfolgenden Namen können zum Vergleichen mit Geräteeigenschaften
       verwandt werden. Einige dieser Schlüssel passen auch auf Eigenschaften
       der in Sysfs übergeordneten Geräte, nicht nur auf das Gerät, das das
       Ereignis erstellt hat. Falls in einer Regel mehrere Schlüssel, die auf
       ein übergeordnetes Gerät passen, festgelegt werden, müssen sämtliche
       Schlüssel auf ein und das gleiche übergeordnete Gerät passen.

       ACTION
           Passt auf den Namen der Ereignisaktion.

       DEVPATH
           Passt auf den Gerätepfad des Ereignisgerätes.

       KERNEL
           Passt auf den Namen des Ereignisgerätes.

       NAME
           Passt auf den Namen der Netzwerkschnittstelle. Er kann verwandt
           werden, sobald in einer der vorhergehenden Regeln der Schlüssel NAME
           gesetzt wurde.

       SYMLINK
           Passt auf den Symlink, der auf den Knoten zielt. Er kann verwandt
           werden, sobald in einer der vorhergehenden Regeln der Schlüssel
           SYMLINK gesetzt wurde. Es kann mehrere Symlinks geben, es muss nur
           einer übereinstimmen.

       SUBSYSTEM
           Passt auf das Untersystem des Ereignisgerätes.

       DRIVER
           Passt auf den Treibernamen des Ereignisgerätes. Setzen Sie diesen
           Schlüssel nur für Geräte, die zum Zeitpunkt des Ereignisses an den
           Treiber gebunden sind.

       ATTR{Dateiname}
           Passt auf Sysfs-Attributwerte des Ereignisgerätes. Nachfolgender
           Leerraum im Attributwert wird ignoriert, außer der festgelegte
           Übereinstimmungswert enthält selbst abschließenden Leerraum.

       SYSCTL{Kernelparameter}
           Passt auf einen Kernelparameterwert.

       KERNELS
           Durchsucht den Gerätepfad nach oben auf passende Gerätenamen.

       SUBSYSTEMS
           Durchsucht den Gerätepfad nach oben auf passende
           Geräteuntersystemnamen.

       DRIVERS
           Durchsucht den Gerätepfad nach oben auf passende Gerätetreibernamen.

       ATTRS{Dateiname}
           Durchsucht den Gerätepfad nach oben auf ein Gerät mit passenden
           Sysfs-Attributwerten. Falls mehrere ATTRS-Treffer festgelegt sind,
           müssen alle von ihnen auf das gleiche Gerät passen. Nachfolgender
           Leerraum in Attributwerten wird ignoriert, außer der festgelegte
           Trefferwert selbst enthält abschließenden Leerraum.

       TAGS
           Durchsucht den Gerätepfad nach oben auf ein Gerät mit passender
           Markierung.

       ENV{Schlüssel}
           Passt auf einen Geräteeigenschaftswert.

       CONST{Schlüssel}
           Passt auf eine systemweite Konstante. Unterstützte Schlüssel sind:

           "arch"
               Architektur des Systems. Siehe ConditionArchitecture= in
               systemd.unit(5) für mögliche Werte.

           "virt"
               Virtualisierungsumgebung des Systems. Siehe
               systemd-detect-virt(1) für mögliche Werte.

           Unbekannte Schlüssel passen niemals.

       TAG
           Passt auf eine Gerätemarkierung

       TEST{oktale Modusmaske}
           Testet auf die Existenz einer Datei. Falls notwendig kann eine oktale
           Modusmaske festgelegt werden.

       PROGRAM
           Führt ein Programm aus, um zu prüfen, ob es passt; der Schlüssel ist
           wahr, falls das Programm sich erfolgreich beendet. Die
           Geräteeigenschaften werden dem ausgeführten Programm in der Umgebung
           zur Verfügung gestellt. Die Standardausgabe des Programms ist im Feld
           RESULT verfügbar.

           Dies kann nur für sehr kurz laufende Vordergrundprozesse verwandt
           werden. Für Details, siehe RUN.

           Beachten Sie, dass mehrere PROGRAM-Schlüssel in einer Regel
           festgelegt werden dürfen und dass »=«, »:=« und »+=« die gleiche
           Auswirkung wie »==« haben.

       RESULT
           Passt auf die Zeichenkette, die beim letzten Aufruf von PROGRAM
           zurückgeliefert wurde. Dieser Schlüssel kann im gleichen Aufruf wie
           PROGRAM oder jedem späteren verwandt werden.

       Die meisten Felder unterstützen Shell-Glob-Muster-Vergleiche und
       alternative Muster. Die folgenden Sonderzeichen werden unterstützt:

       "*"
           Passt auf ein oder mehrere Zeichen.

       "?"
           Passt auf jedes einzelne Zeichen.

       "[]"
           Passt auf jedes einzelne, innerhalb der Klammern festgelegte Zeichen.
           Die Musterzeichenkette »tty[SR]« würde beispielsweise auf entweder
           »ttyS« oder »ttyR« passen. Mittels des Zeichens »-« werden auch
           Bereiche unterstützt. Um beispielsweise auf den Bereich aller Ziffern
           zu passen, könnte das Muster »[0-9]« verwandt werden. Falls das erste
           Zeichen nach dem »[« ein »!« ist, dann passen alle nicht
           eingeschlossenen Zeichen.

       "|"
           Trennt alternative Muster. Die Musterzeichenkette »abc|x*« passt
           entweder auf »abc« oder auf »x*«.

       Den folgenden Schlüsseln können Werte zugewiesen werden:

       NAME
           Der für eine Netzwerkschnittstelle zu verwendende Name. Siehe
           systemd.link(5) für einen abstrakteren Mechanismus zum Setzen von
           Schnittstellennamen. Der Name eines Geräteknotens kann durch Udev
           nicht geändert werden, es können nur zusätzliche Symlinks erstellt
           werden.

       SYMLINK
           Der Name eines Symlinks, der auf den Knoten zielt. Jede passende
           Regel fügt diesen Wert zu der Liste der zu erstellenden Symlinks
           hinzu.

           Die Menge der Zeichen zur Benennung eines Symlinks ist begrenzt. Die
           erlaubten Zeichen sind »0-9A-Za-z#+-.:=@_/«, gültige
           UTF-8-Zeichensequenzen und »\x00«-Hexadezimalkodierung. Alle anderen
           Zeichen werden durch ein »_« ersetzt.

           Es können mehrere Symlinks festgelegt werden, indem die Namen durch
           Leerzeichen getrennt werden. Falls mehrere Geräte den gleichen Namen
           beanspruchen, zeigt der Link immer auf das Gerät mit der höchsten
           »link_priority«. Falls das aktuelle Gerät verschwindet, werden die
           Links neu bewertet und das Gerät mit der nächst höchsten
           »link_priority« wird der Eigentümer des Links. Falls keine
           »link_priority« festgelegt ist, ist die Reihenfolge der Geräte (und
           welchem davon der Link gehört) nicht definiert.

           Symlink-Namen dürfen niemals mit dem Vorgabegeräteknotennamen des
           Kernels in Konflikt stehen, da dies zu unvorhersagbarem Verhalten
           führen würde.

       OWNER, GROUP, MODE
           Die Rechte für den Geräteknoten. Jeder festgelegte Wert setzt den
           einkompilierten Vorgabewert außer Kraft.

       SECLABEL{Modul}
           Wendet das festgelegte Linux-Security-Modul-Label auf den
           Geräteknoten an.

       ATTR{Schlüssel}
           Der Wert, der zu einem Sysfs-Attribut des Ereignisgerätes geschrieben
           werden soll.

       SYSCTL{Kernelparameter}
           Der Wert, der in den Kernelparameter geschrieben werden soll.

       ENV{Schlüssel}
           Setzt einen Geräteeigenschaftswert. Eigenschaftsnamen, die mit einem
           ».« beginnen, werden weder in der Datenbank gespeichert noch an
           externe Ereignisse oder externe Werkzeuge (die beispielsweise vom
           Vergleichsschlüssel PROGRAM ausgeführt werden) exportiert.

       TAG
           Hängt eine Markierung an ein Gerät. Dies wird zum Filtern von
           Ereignissen für Benutzer der Monitor-Funktionalität von Libudev oder
           zur Aufzählung einer Gruppe von markierten Geräten verwandt. Die
           Implementierung kann nur effizient arbeiten, falls nur wenige
           Markierungen an ein Gerät angehängt werden. Dies ist nur zur
           Verwendung in Zusammenhängen mit bestimmten Gerätefilteranforderungen
           und nicht als Allzweckmarkierung gedacht. Umfangreiche Verwendung
           kann zu einer ineffizienten Ereignisbehandlung führen.

       RUN{Typ}
           Legt ein Programm fest, das nach der Verarbeitung aller Regeln für
           das Ereignis ausgeführt werden soll. Mit »+=« wird diese Ausführung
           zu der Liste hinzugefügt und mit »=« oder »:=« ersetzt sie sämtlichen
           vorherigen Inhalt der Liste. Bitte beachten Sie, dass beide
           nachfolgend beschriebenen Typen »program« und »builtin« eine einzige
           Liste verwenden, so dass das Bereinigen der Liste mit »:=« und »=«
           beide Typen betrifft.

           type kann sein:

           "program"
               Führt ein externes Programm aus, das als übergebener Wert
               festgelegt ist. Falls kein absoluter Pfad übergeben ist, dann
               muss sich das Programm in /usr/lib/udev befinden; andernfalls
               muss der absolute Pfad festgelegt werden.

               Dies ist die Vorgabe, falls kein Typ festgelegt ist.

           "builtin"
               Wie program, verwendet aber eines der eingebauten Programme statt
               eines externen.

           Der Programmname und die nachfolgenden Argumente sind durch
           Leerzeichen getrennt. Einfache englische Anführungszeichen können zur
           Festlegung von Argumenten mit Leerzeichen verwandt werden.

           Dies kann für sehr kurz laufende Vordergrundprozesse verwandt werden.
           Läuft ein Ereignisprozess für längere Zeitperioden, dann können alle
           weiteren Ereignisse für dieses oder abhängige Geräte blockiert sein.

           Beachten Sie, dass laufende Programme, die auf das Netzwerk zugreifen
           oder Dateisysteme ein-/aushängen, innerhalb von Udev-Regeln aufgrund
           der in systemd-udevd.service erzwungenen Standard-Sandbox nicht
           erlaubt sind.

           Das Starten von Daemons oder langlaufenden Prozessen ist nicht
           erlaubt, der mit Fork erzeugte Prozess wird nach Abschluss der
           Ereignisbehandlung bedingungslos getötet, unabhängig davon, ober er
           sich in den Hintergrund geschoben hat. Um aus Udev-Regeln heraus
           langlaufende Prozesse zu aktivieren, sollten Sie eine Dienste-Unit
           bereitstellen und diese mittels der Geräteeigenschaft SYSTEMD_WANTS
           durch eine Udev-Regel hereinziehen. Siehe systemd.device(5) für
           Details.

       LABEL
           Ein benanntes Sprungziel, zu dem ein GOTO springen kann.

       GOTO
           Springt zu dem nächsten LABEL mit einem passenden Namen.

       IMPORT{Typ}
           Importiert eine Gruppe von Variablen als Geräteeigenschaften,
           abhängig vom Typ:

           "program"
               Führt ein externes Programm aus, das als zugewiesener Wert
               festgelegt ist und, falls es erfolgreich zurückkehrt, importiert
               dessen Ausgabe, die in einem Umgebungsschlüsselformat vorliegen
               muss. Pfadfestlegungen, Befehls-/Argumenttrennung und Maskierung
               funktionieren wie in RUN.

           "builtin"
               Ähnlich zu »program«, verwendet aber eines der eingebauten
               Programme statt eines externen.

           "file"
               Importiert eine Textdatei, festgelegt als zugewiesener Wert,
               deren Inhalt in einem Umgebungsschlüsselformat vorliegen muss.

           "db"
               Importiert eine einzelne Eigenschaft, die als zugewiesener Wert
               aus der aktuellen Gerätedatenbank festgelegt ist. Dies
               funktioniert nur, wenn die Datenbank bereits durch ein früheres
               Ereignis gefüllt ist.

           "cmdline"
               Importiert eine einzelne Eigenschaft von der Kernelbefehlszeile.
               Für einfache Schalter wird der Wert der Eigenschaft auf »1«
               gesetzt.

           "parent"
               Importiert gespeicherte Schlüssel vom übergeordneten Gerät durch
               Lesen der Datenbankeinträge des übergeordneten Gerätes. Der
               IMPORT{parent} zugewiesene Wert wird als Filter für zu
               importierende Schlüsselnamen verwandt (wobei die gleiche
               Shell-Glob-Musterüberprüfung wie bei Vergleichen verwandt wird).

           Dies kann nur für sehr kurz laufende Vordergrundprozesse verwandt
           werden. Für Details siehe RUN.

           Beachten Sie, dass in einer Regel mehrere IMPORT{}-Schlüssel
           festgelegt werden können und dass »=«, »:=« und »+=« die gleiche
           Auswirkung wie »==« haben. Der Schlüssel ist wahr, falls der Import
           erfolgreich war, außer »!=« wurde als Operator verwandt, dieser führt
           dazu, dass der Schlüssel wahr wird, falls der Import fehlschlug.

       OPTIONS
           Regeln und Geräteoptionen:

           link_priority=Wert
               Legt die Priorität der erstellten Symlinks fest. Geräte mit
               höherer Priorität überschreiben existierende Symlinks anderer
               Geräte. Die Vorgabe ist 0.

           string_escape=none|replace
               Normalerweise werden Steuer- und andere möglicherweise unsichere
               Zeichen in Zeichenketten für die Gerätebenennung ersetzt. Der
               Ersetzungsmodus kann mit dieser Option festgelegt werden.

           static_node=
               Wendet die in dieser Regel festgelegten Berechtigungen auf die
               statischen Geräteknoten mit dem festgelegten Namen an. Erzeugt
               auch für jede in dieser Regel festgelegte Markierung einen
               Symlink im Verzeichnis /run/udev/static_node-tags/Markierung, der
               auf den statischen Geräteknoten mit dem festgelegten Namen zeigt.
               Die Erstellung statischer Geräteknoten wird durch
               Systemd-tmpfiles vor dem Start von Systemd-udevd durchgeführt.
               Die statischen Knoten müssen kein entsprechendes Kernelgerät
               haben; sie werden beim Zugriff zum Auslösen des automatischen
               Ladens von Kernelmodulen verwandt.

           watch
               Beobachtet den Geräteknoten mit Inotify; wenn der Knoten nach der
               Verwendung zum Schreiben geschlossen wird, dann wird ein
               Änderungs-Uevent erzeugt.

           nowatch
               Deaktivert die Beobachtung eines Geräteknotens mit Inotify.

           db_persist
               Setzt den Schalter (Sticky-Bit) für den Udev-Datenbankeintrag des
               Ereignisgeräts. Geräteeigenschaften werden dann in der Datenbank
               behalten, selbst wenn udevadm info --cleanup-db aufgerufen wird.
               In bestimmten Fällen kann diese Option für dauerhafte Geräte beim
               Übergang vom Initramfs nützlich sein (z.B. Device-Mapper-Geräte).

       Die Felder NAME, SYMLINK, PROGRAM, OWNER, GROUP, MODE, SECLABEL und RUN
       unterstützen einfache Zeichenkettenersetzungen. Die RUN-Ersetzung wird
       durchgeführt, nachdem alle Regeln verarbeitet wurden, direkt bevor das
       Programm ausgeführt wird, wodurch die Verwendung von Geräteeigenschaften
       ermöglicht wird, die in vorherigen Regeln gesetzt wurden. Für alle
       anderen Felder wird die Ersetzung durchgeführt, während die individuelle
       Regel verarbeitet wird. Die verfügbaren Ersetzungen sind:

       $kernel, %k
           Der Kernelname für dieses Gerät.

       $number, %n
           Die Kernelnummer für dieses Gerät. Beispielsweise hat »sda3« die
           Kernelnummer »3«.

       $devpath, %p
           Der Gerätepfad des Gerätes.

       $id, %b
           Der Name des passenden Gerätes beim Aufwärtsdurchsuchen des
           Gerätepfades nach SUBSYSTEMS, KERNELS, DRIVERS und ATTRS.

       $driver
           Der Treibername des passenden Gerätes beim Aufwärtsdurchsuchen des
           Gerätepfades nach SUBSYSTEMS, KERNELS, DRIVERS und ATTRS.

       $attr{Datei}, %s{Datei}
           Der Wert eines Sysfs-Attributs, das bei einem Gerät gefunden wird,
           bei dem alle Schlüssel der Regel übereinstimmen. Falls das passende
           Gerät kein solches Attribut hat und ein vorhergehender KERNELS-,
           SUBSYSTEMS-, DRIVERS- oder ATTRS-Test ein übergeordnetes Gerät
           ausgewählt hat, dann wird das Attribut vom übergeordneten Gerät
           verwandt.

           Falls das Attribut ein Symlink ist, wird das letzte Element des
           Symlink-Ziels als Wert zurückgegeben.

       $env{Schlüssel}, %E{Schlüssel}
           Ein Geräteeigenschaftswert.

       $major, %M
           Die Major-Nummer des Kernels für das Gerät.

       $minor, %m
           Die Minor-Nummer des Kernels für das Gerät.

       $result, %c
           Die Zeichenkette, die von dem mit PROGRAMM erbetenen externen
           Programm zurückgeliefert wurde. Ein einzelner, durch ein Leerzeichen
           getrennter Teil der Zeichenkette kann durch Angabe einer Teilnummer
           als Attribut ausgewählt werden: » %c{N}«. Falls der Nummer ein »+«
           folgt, wird dieser Teil sowie alle verbliebenen Teile der
           Ergebniszeichenkette ersetzt: »%c{N+}«.

       $parent, %P
           Der Knoten-Name des übergeordneten Geräts.

       $name
           Der aktuelle Name des Geräts. Falls nicht durch eine Regel geändert,
           ist dies der Name des Kernelgeräts.

       $links
           Eine Leerzeichen-getrennte Liste der aktuellen Symlinks. Der Wert
           wird nur während eines Entfernungsereignisses gesetzt oder falls eine
           frühere Regel einen Wert zuwies.

       $root, %r
           Der Wert udev_root.

       $sys, %S
           Der Sysfs-Einhängepunkt.

       $devnode, %N
           Der Name des Geräteknotens.

       %%
           Das Zeichen »%« selbst.

       $$
           Das Zeichen »$« selbst.

SIEHE AUCH
       systemd-udevd.service(8), udevadm(8), systemd.link(5)


Ü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 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 <debian-l10n-german@lists.debian.org>.



systemd 246                                                              UDEV(7)