我使用的是最新的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)
您还可以手动编辑规则并跨机器复制等。
| 归档时间: |
|
| 查看次数: |
9176 次 |
| 最近记录: |