gpt4 book ai didi

linux - 在 Linux 中阻止 USB HID

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:37 24 4
gpt4 key购买 nike

我正在对 kioks 设备进行编程,我想阻止除 2 种 USB 之外的所有 USB 设备。一个是我的触摸屏隐藏 USB,另一个是 USB 存储设备。实际上我尝试在 udev 下编写规则。我尝试了以下代码:

ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTR{authorized}="0"

但是这个会阻止所有 USB 设备。因此我尝试添加另一条规则来使用产品和供应商 ID 来解锁特定设备。

ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTR{idVendor}=="0eef", ATTR{idProduct}=="0005", ATTR{authorized}="1"

但是这个不起作用。

是否还有其他方法可以执行此操作。

最佳答案

您的方法的问题在于它也会禁用 USB 集线器设备,并且通常集线器是 USB 主机 Controller 内部的一部分。因此,禁用所有 USB 设备后,您需要显式启用所有集线器设备,然后启用所需的 USB 设备。这可以这样做:

#By default, disable all usb devices (including hubs)
ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'"

#Enable hub devices
ACTION=="add", ATTR{bDeviceClass}=="09", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"

#Enable desired USB devices by setting PID/VID
ACTION=="add", ATTR{idVendor}=="045e", ATTR{idProduct}=="07f8", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"
ACTION=="add", ATTR{idVendor}=="045e", ATTR{idProduct}=="0797", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"

有关更多信息,请点击以下链接: Setting authorized by running script , Setting authorized using ATTR

关于linux - 在 Linux 中阻止 USB HID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58230660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com