USB-Anschlüsse deaktivieren

8

Ich verwende das RPI, um ein Programm zu erstellen, muss jedoch die USB-Anschlüsse deaktivieren, damit der Endbenutzer keine Tastatur oder Maus anschließen und mit dem Gerät herumspielen kann.

Ist das möglich und wenn ja, wie wird es gemacht?

fypfyp
quelle
1
Ich denke, das ist, was Sie suchen: wpkg.org/Disable_/_enable_keyboard_and_mouse_in_Linux
Gerben
1
Das Superkleben der USB-Anschlüsse funktioniert ebenfalls. Das haben die Banken früher gemacht. :-P
Gerben
Was fürchten Sie, was der Benutzer tun könnte?
Zurechtweiser
@Gerben Ihr Link zum Deaktivieren von Maus / Tastatur im X Window System, nicht der USB-Maus / Tastatur-Hardware.
Gurcanozturk
Verwenden Sie X oder nur die Konsole? Standardmäßig ist die Konsole kennwortgeschützt. Könnten Sie etwas mehr über die Situation erklären, für die Sie es verwenden möchten?
Gerben

Antworten:

4

Sie können Glück mit diesem Befehl finden:

Echo 0x0> / sys / Geräte / Plattform / bcm2708_usb / Buspower

Dies scheint die USB-Anschlüsse zu deaktivieren. Ich habe es aber nicht getestet.

ronnied
quelle
1
Die USB-Anschlüsse sind während des Startvorgangs weiterhin verfügbar. Wenn der Benutzer den PI neu starten kann, funktioniert diese Lösung nicht.
Pim
2

Jeder USB-Host-Controller unter Linux stellt eine Einstellung namens bereit authorized_default, die den Status aller neu angeschlossenen Geräte steuert. Wenn Sie den Wert auf 0 setzen, werden alle neuen Geräte standardmäßig deaktiviert:

for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done

Eine empfohlene Methode zum Ausführen dieses Skripts besteht in der Verwendung von udevRegeln. Auf diese Weise können Sie sicher sein, dass das Skript zum richtigen Zeitpunkt ausgeführt wird, wenn der Host-Controller-Treiber bereits geladen ist, aber noch keines der Geräte autorisiert wurde. In dieser Frage finden Sie ein Beispiel für diesen Ansatz.

Eine Sache, die Sie verstehen sollten, ist, dass Software-Sperren nur wirksam sind, solange der Endbenutzer die SD-Karte nicht ausstecken und die von Ihnen eingerichteten Schutzfunktionen entfernen kann.

Dmitry Grigoryev
quelle
1

Ich weiß nicht wirklich, dass es direkt möglich ist ... Warum nicht einfach die Fähigkeit des Benutzers physisch blockieren? Entweder indem Sie es dort platzieren, wo sie nicht hinkommen können, indem Sie die Anschlüsse ausfüllen oder indem Sie einen Verriegelungsmechanismus darüber / darum legen.

Jacobm001
quelle
Sie kennen die Umgebung, in der sich das Gerät befindet, nicht. Es befindet sich möglicherweise an einem Ort, an dem Sie keine Kontrolle darüber haben, wer Zugriff darauf hat, z. B. in einem AV-Rack an einem entfernten Ort, der kilometerweit entfernt ist. Sie können es in einem Schrank aufbewahren, aber normalerweise haben die Verwaltung oder das Personal vor Ort weiterhin Zugriff auf diese Schränke. Es ist einfacher, auf Software-Ebene einen Block zu geben, um Leute davon abzuhalten, herumzuspielen.
ScottN
@ ScottN: Sicher, ich denke. Das Ausfüllen der Ports mit Epoxidharz würde dieses Problem lösen, aber wirklich ... Wenn jemand über diesen physischen Zugriff auf das Gerät verfügt, sind alle anderen Sicherheitsaspekte ohnehin mehr oder weniger umstritten.
Jacobm001
Oh, das Füllen der Anschlüsse mit Epoxid ist wirklich ein letzter Ausweg und vergessen Sie, das Gerät verwendbar zu machen, wenn es für RMA oder etwas zurückgegeben wird. Mein Hauptanliegen war es, jemanden davon abzuhalten, damit zu spielen, wie Mitarbeiter, die eine Tastatur anschließen, YouTube starten und Videos ansehen, wenn dieses Gerät für Beschilderungen oder was auch immer verwendet werden soll.
ScottN
1
sudo sh -c "echo 0 > /sys/devices/platform/soc/3f980000.usb/buspower"

Deaktiviert die USB-Anschlüsse, aber auch den LAN-Anschluss.

sudo sh -c "echo 1 > /sys/devices/platform/soc/3f980000.usb/buspower"

Aktiviert sie erneut.

Lennart Hennigs
quelle
0

Verwenden Sie SELinux, schauen Sie online nach und Sie haben sehr viele Ressourcen. Es wurde zu diesem Zweck entwickelt. Sie können dann Ports und andere Funktionen Ihres Linux-Systems deaktivieren / aktivieren.

donitel
quelle