You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebUSB调用device.open()报“Access denied”权限问题求助

解决WebUSB在Ubuntu下的权限拒绝问题

核心原因

Ubuntu系统中,/dev/bus/usb路径下的设备文件默认仅允许root或plugdev组用户访问,你的Chrome进程当前没有足够权限读取这些设备文件,导致调用device.open()时触发权限拒绝错误。Pixel 3能正常访问是因为Chrome对Android设备有特殊权限处理逻辑。

解决方案

1. 将当前用户加入plugdev组

大多数USB设备默认归属于plugdev组,把用户加入该组可获取基础访问权限:

sudo usermod -aG plugdev $USER

执行后必须注销并重新登录,让组权限生效。

2. 添加自定义udev规则(针对特定设备)

如果加入组后问题仍存在(比如热敏打印机这类特殊设备),需要为目标设备创建udev规则赋予全局可读可写权限:

  1. 查看设备的Vendor ID和Product ID:
    执行lsusb命令,找到目标设备的行,格式类似Bus 001 Device 005: ID XXXX:YYYY Vendor Name,其中XXXX是Vendor ID,YYYY是Product ID。
  2. 创建udev规则文件:
    sudo nano /etc/udev/rules.d/99-webusb.rules
    
  3. 在文件中添加以下内容(替换XXXX和YYYY为你的设备ID):
    SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", MODE="0666", GROUP="plugdev"
    
  4. 重新加载udev规则并触发设备重新识别:
    sudo udevadm control --reload-rules && sudo udevadm trigger
    

3. 验证权限设置

重新连接设备后,执行以下命令检查设备文件权限:

ls -l /dev/bus/usb/001/005

输出中权限应包含rw-rw-rw-,且组为plugdev,此时Chrome即可正常调用device.open()。

内容的提问来源于stack exchange,提问作者Wajahath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:55:18