Ubuntu 16.04 su 可以认领USB设备,但其他用户不能

Ubuntu 16.04 su 可以认领USB设备,但其他用户不能

我刚刚在 Ubuntu 16.04 中安装了 OceanOptics SpectraSuite,它将 USB 数字光谱仪连接到笔记本电脑。当我作为用户“讲师”执行该软件时,它会在不访问硬件的情况下启动。如果我使用 sudo 执行,它会正常启动并且硬件已正确初始化:

instructor@modern5-Latitude-E6500:~$ which spectrasuite
/usr/local/bin/spectrasuite
instructor@modern5-Latitude-E6500:~$ spectrasuite
Linux native USB library loaded.
Detected device change on USB
Could not claim device (Vid: 0x2457, Pid: 0x1022, iface: 0)
The interface could not be claimed.
^C
instructor@modern5-Latitude-E6500:~$ sudo spectrasuite
[sudo] password for instructor:
Linux native USB library loaded.
Detected device change on USB
The interface was claimed successfully.

如何让学生(使用不同的用户名)启动该软件而无需切换用户?

答案1

该设备可能以类似的方式连接/dev/ttyUSB0。您可以检查该设备的权限并将所有其他用户添加到适当的组。例如,在我的系统上,我有一个 USB 设备,例如:

$ ls -al /dev/ttyUS*
crw-rw---- 1 root dialout 188, 0 Sep  1 10:00 /dev/ttyUSB0
$ 

因此,通过将自己添加到dialout组 ( sudo adduser myname dialout),我可以访问该设备。请注意,其他设备(例如调制解调器和串行端口)可能会使用该dialout组;如果您拥有这些设备并希望阻止学生访问它们,您可能需要使用不同的方法。

答案2

至此,没有出现令人满意的解决方案。幸运的是,OceanOptics 技术支持提供了更新的配置文件 (10-oceanoptics.rules),成功实现了这一点。

其他失败的方法包括更改 SELinux 配置设置(SELinux 在 16.04 中默认禁用)以及使用 2009 年 2 月安装 CD 附带的 10-oceanoptics.rules 文件。

相关内容