USB 设备未获得使用授权

Hon*_*wei 3 security 20.04

我使用的是最新的Ubuntu 20.04,所有软件都已更新。

系统安装完毕后,U盘就可以使用了,没有任何问题。安装很多其他软件后,无法识别U盘。我确信驱动程序已安装。当我运行时lsusb,我可以找到U盘

Bus 001 Device 005: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2
Run Code Online (Sandbox Code Playgroud)

当我跑步时dmesg,它显示

[241620.374470] usb 1-1.3: Device is not authorized for usage
[241637.411899] usb 1-1.3: USB disconnect, device number 4
Run Code Online (Sandbox Code Playgroud)

我编辑了org.freedesktop.devicekit.udisks.policy,改成allow_anyyes还是不行!

后来我发现问题是usbguard屏蔽了usb设备。

通过 找出设备的 id 并usbguard list-devices使用usbguard allow-device XX。但它如何才能自动工作呢?

小智 9

如果您有usbguard并且它阻止您想要使用的设备,您可以使用该usbguard工具将它们添加到允许列表中。运行一下usbguard,你应该会得到一些相当清晰的指示。

usbguard list-devices # optionally --blocked
Run Code Online (Sandbox Code Playgroud)

应该为您提供已连接设备的列表以及是否允许或阻止它们。你可以选择一个id(第一个数字)并运行例如

usbguard allow-device -p 17    # allow-device [OPTIONS] <'id' | rule>
Run Code Online (Sandbox Code Playgroud)

-p--permanent让决定永久化。设备特定的允许规则将附加到当前策略中。

并且应该看到日志中的变化:

kernel: usb 1-1: authorized to connect
Run Code Online (Sandbox Code Playgroud)

Usbguard 旨在阻止系统启动后热插拔的所有设备。要进行持久更改,您可以将规则添加到/etc/usbguard/rules.conf. 您可以使用当前规则生成配置usbguard generate-policy

因此,要查看它们之间的变化,您可以:

usbguard generate-policy | sudo diff - /etc/usbguard/rules.conf
Run Code Online (Sandbox Code Playgroud)

并用当前运行覆盖规则文件:

usbguard generate-policy | sudo tee /etc/usbguard/rules.conf
Run Code Online (Sandbox Code Playgroud)

您还可以手动编辑规则并跨机器复制等。