Wenn der Linux-Kernel ein neues Gerät erkennt, sendet er eine Nachricht an udev . Die Aufgabe von udev ist es, das neue Gerät dem Benutzerland zugänglich zu machen. Für viele Geräte muss udev lediglich Einträge in erstellen /dev
. Bei Blockgeräten kann das Gerät so montiert werden. Auf diese Weise können dedizierte Anwendungen das Gerät für Zeichengeräte wie serielle Ports und Sound-Ports verwenden. Für Netzwerkschnittstellen kann udev einen Namen festlegen. Für Tastaturen kann udev auch zusätzliche Scancodes definieren. Wenn udev keinen Geräteeintrag erstellt, wird das Gerät effektiv nicht verwendet.
Udev kann durch Regeln gesteuert werden ; Standardregeln sind in vorhanden /lib/udev/udev.d
und können vom Administrator über Dateien in überschrieben werden /etc/udev/udev.d
. Jede udev-Regel hat Bedingungen der Form ; Die Regel gilt, wenn alle diese Regeln erfüllt sind. Sie können die Bedingungen, die für ein Gerät gelten, anzeigen, indem Sie oder ausführen .VARIABLE==VALUE
udevadm info -a -n /dev/…
udevadm info -a /sys/…
Soweit ich weiß, gibt es keinen generischen Mechanismus, um ein Gerät zu ignorieren. Wenn es sich nicht um eine Netzwerkschnittstelle handelt (unter der kein Geräteknoten verwendet wird /dev
), können Sie sie effektiv unbrauchbar machen, indem Sie ihr keine Berechtigungen erteilen:
BEDINGUNGEN , MODE = "000"
USB-Geräte verfügen über einen Autorisierungsmechanismus : Wenn das authorized
Attribut auf 0 (false) gesetzt ist, greift das System nicht auf das Gerät zu. Mit dieser Regel ist kein anderes USB-Gerät als USB-Speichergeräte verfügbar.
ACTION=="add", SUSYSTEMS=="usb", DRIVERS!="usb-storage", ATTR{authorized}="0"
Es ist auch möglich , USB-Geräte nach der Startsequenz zu deaktivieren, indem Sie alle USB-Host-Ports mit diesem Snippet deaktivieren /etc/rc.local
:
for x in /sys/bus/usb/devices/usb*; do
echo 0 >"$x/authorized_default"
done
Einzelne Geräte können über eine udev-Regel (oder manuell) aktiviert werden, die das authorized
Attribut auf 1 setzt.
Wenn Sie ein Speichergerät schreibgeschützt machen möchten, setzen Sie sein ro
Attribut auf 1.
Wenn Sie einen Befehl ausführen möchten, verwenden Sie den RUN
Schlüssel in einer udev-Regel (beachten Sie, dass Sie den vollständigen Pfad zum Befehl benötigen und die verfügbaren Escape-Sequenzen und Umgebungsvariablen im Handbuch finden ). Wenn Sie möchten, dass dieser Befehl auf die GUI zugreift, lesen Sie
Öffnen eines Fensters auf einer Remote-X-Anzeige (warum "Anzeige kann nicht geöffnet werden").