【问题标题】:How to only allow certain key commands from a certain USB port如何只允许来自某个 USB 端口的某些键命令
【发布时间】:2025-11-28 23:55:02
【问题描述】:

我收到了一个带有 USB 的巨型泡沫输入键小工具作为礼物(如果您想了解我的意思,请搜索“Big Enter”)。 我的猜测是,它可能只是一个只连接回车键的键盘。 由于我不信任这些小工具,并且我想提高对 Linux 设备和驱动程序的了解,我想知道如何防止这种可能的橡皮鸭发出任意键命令。 我想将允许的按键限制为“Enter”,仅适用于连接到我系统上某个 USB 端口的所有设备。

我需要一个自定义内核驱动程序还是有其他方法? systemctl 什么的?

感谢您的建议:)

【问题讨论】:

    标签: linux usb driver


    【解决方案1】:

    从 USB 的角度来看,这是一个 HID 设备(人机接口设备)。您可以做的是在连接设备后运行dmesg 以查看它加载的驱动程序。您还可以运行lsusb -v 以获取其供应商和产品 ID 以及许多其他信息

    它很可能会加载 USB HID 驱动程序,然后您可以运行 usbhid-dump 来获取它发送的报告和描述符。从这些描述符中可以读取设备功能

    https://www.systutorials.com/docs/linux/man/8-usbhid-dump/

    https://www.kernel.org/doc/html/latest/usb/gadget_hid.html

    更多高级内容见How to capture raw HID input on linux?

    如果您知道设备的功能,您可以禁用 https://unix.stackexchange.com/questions/566398/disable-a-specific-key-on-a-specific-keyboard 中的键

    https://unix.stackexchange.com/questions/60078/find-out-which-modules-are-associated-with-a-usb-device

    【讨论】: