怎么通过 udev 规则来禁用USB 鼠标事件和键盘事件
时间: 2024-03-05 11:51:24 浏览: 34
要通过udev规则来禁用USB鼠标事件和键盘事件,可以按照以下步骤操作:
1. 打开udev规则目录:
```
cd /etc/udev/rules.d/
```
2. 创建一个新的udev规则文件,例如"99-disable-usb-keyboard-mouse.rules":
```
sudo nano 99-disable-usb-keyboard-mouse.rules
```
3. 在文件中添加以下内容:
```
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="<your_vendor_id>", ATTRS{idProduct}=="<your_product_id>", RUN+="/bin/sh -c 'echo 0 > /sys/\$devpath/authorized'"
```
其中,<your_vendor_id>和<your_product_id>是USB鼠标和键盘的厂商ID和产品ID。你可以使用以下命令列出所有连接到计算机上的USB设备:
```
lsusb
```
4. 保存并关闭文件。
5. 重新加载udev规则:
```
sudo udevadm control --reload-rules
```
6. 拔掉USB鼠标和键盘,然后重新插入它们。
现在,USB鼠标和键盘的事件将被禁用。请注意,这种方法可能不适用于所有Linux发行版和所有USB设备。如果你遇到任何问题,请参考你的Linux发行版文档或USB设备文档。
相关问题
怎么通过 udev 规则来过滤 USB 鼠标事件而不过滤 U 盘事件
你可以通过以下步骤来编写一个 udev 规则来过滤 USB 鼠标事件而不过滤 U 盘事件:
1. 首先,使用命令 `lsusb` 来查看连接到你的系统上的 USB 设备,找到你想要过滤的 USB 鼠标的 Vendor ID 和 Product ID。
2. 然后,在 `/etc/udev/rules.d/` 目录下创建一个新的规则文件,例如 `99-mouse.rules`。
3. 编辑这个规则文件,添加以下内容:
```
# 过滤 USB 鼠标事件
SUBSYSTEM=="input", ATTRS{idVendor}=="<Vendor ID>", ATTRS{idProduct}=="<Product ID>", GOTO="mouse_end"
# 不过滤 U 盘事件
SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", GOTO="usb_end"
# 跳过鼠标事件处理
LABEL="mouse_end", GOTO="usb_end"
# 处理 U 盘事件
LABEL="usb_end"
```
将 `<Vendor ID>` 和 `<Product ID>` 替换为你查找到的 USB 鼠标的 Vendor ID 和 Product ID。
4. 保存文件并退出编辑器。
5. 重新加载 udev 规则,使用命令 `sudo udevadm control --reload-rules`。
现在,当你插入 USB 设备时,udev 将根据这个规则文件过滤 USB 鼠标事件,并不过滤 U 盘事件。
适用于所有Linux发行版和所有USB设备来禁用USB 鼠标事件和键盘事件
由于Linux发行版和USB设备的差异,可能没有一种通用的方法适用于所有情况。以下是在大多数Linux发行版和USB设备上禁用USB鼠标和键盘事件的一种可能的方法:
1. 打开终端并输入以下命令以确认你的鼠标和键盘的设备文件名:
```
sudo cat /proc/bus/input/devices
```
在输出中找到你的鼠标和键盘的设备名称。例如,可能看起来像这样:
```
I: Bus=0011 Vendor=0001 Product=0001 Version=ab54
N: Name="AT Translated Set 2 keyboard"
...
I: Bus=0018 Vendor=06cb Product=7f27 Version=0100
N: Name="DELL Laser Mouse"
```
在这个例子中,键盘的设备名称是“AT Translated Set 2 keyboard”,鼠标的设备名称是“DELL Laser Mouse”。
2. 创建一个新的udev规则文件,例如“99-disable-usb-keyboard-mouse.rules”:
```
sudo nano /etc/udev/rules.d/99-disable-usb-keyboard-mouse.rules
```
3. 在文件中添加以下内容:
```
ACTION=="add", KERNEL=="event[0-9]*", ATTRS{name}=="AT Translated Set 2 keyboard", RUN+="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"
ACTION=="add", KERNEL=="event[0-9]*", ATTRS{name}=="DELL Laser Mouse", RUN+="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"
```
这些规则将禁用名称为“AT Translated Set 2 keyboard”和“DELL Laser Mouse”的设备上的USB鼠标和键盘事件。如果你的设备有不同的名称,请将ATTRS{name}的值更改为相应的名称。
4. 保存并关闭文件。
5. 重新加载udev规则:
```
sudo udevadm control --reload-rules
```
6. 重新启动计算机或重新插入鼠标和键盘。
现在,USB鼠标和键盘的事件将被禁用。请注意,这种方法可能不适用于所有Linux发行版和所有USB设备。如果你遇到任何问题,请参考你的Linux发行版文档或USB设备文档。