如何允许非 root 访问 /ttyUSB0?

yur*_*dal 55 root usb

由于我从 Ubuntu 10.04 (Lucid Lynx) 更新到 Ubuntu 12.04 (Precise Pangolin),如果我没有 root 访问权限,我将无法访问 /ttyUSB0 中连接的设备。

更具体地说,我使用 USB 到串行 com 端口转换器通过名为PuTTY 的软件访问和配置 Cisco 设备。碰巧的是,自从我升级到 12.04,PuTTY 仅在我将其作为gksudo putty. 如果没有,它会显示“无法连接到端口 /ttyUSB0”。

我设法通过 更改了权限chmod 666,并且它可以工作,但是如果我断开 USB 设备并重新连接,它只会返回到 root。如何永久允许非 root 访问?我知道这可能是通过udev规则实现的,但我不知道该怎么做。

观察:制造商和驱动程序是“PROLIFIC”

Rin*_*ind 126

该设备最有可能附加到用户组dialout。只需将您的用户添加到拨出组即可,以便您在设备上拥有适当的权限。

sudo usermod -a -G dialout $USER
Run Code Online (Sandbox Code Playgroud)

(您可能需要注销并重新登录才能使新组生效。)

无需处理权限或 udev 规则。

  • 没有成功...没有 root 仍然无法访问 ttyUSB0...还有其他想法吗??? (3认同)
  • 在 Ubuntu 中(我使用的是 18.04),注销/登录不起作用。我们必须在执行 usermod 后重新启动。 (3认同)
  • 这不适用于 Debian (2认同)
  • 感谢包括“可能需要注销并重新登录”。 (2认同)

小智 13

这可能与modemmanager有关,详见此处

我删除了那个 ( sudo apt-get remove modemmanager) 并解决了我的问题。

但是你仍然需要在dialout组中。

  • 如果我无法删除 modemmanager 怎么办?我有一个朋友有一个 3G 调制解调器,因此他似乎无法删除 modemmanager。他如何在没有 root 的情况下访问 12.04 上的 /ttyUSB0,但又不删除 modemmanager? (2认同)
  • **请注意:** 如果您不以任何方式使用 `modemmanager`,则在 `dialout` 组中就足够了。“modemmanager”的移除是针对 OP 情况的特定案例,并不是每次都需要。 (2认同)

小智 11

sudo adduser <the user you want to add> dialout
sudo reboot
Run Code Online (Sandbox Code Playgroud)

提到的“立即尝试”对我有用。检查您是否拥有以下dialout群组ttyUSB0

ls -l /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

在我的情况下,输出是:

crw-rw---T 1 root dialout 188, 0 Feb 12 12:01 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)