Ste*_*err 5 serial-port permission-denied ubuntu-18.04
我正在尝试访问在我的 Kubuntu 18.04 机器上通过 USB 连接到 /dev/ttyUSB0 的 ESP32 微控制器,但出现权限被拒绝的错误:
SerialException: [Errno 13] 无法打开端口 /dev/ttyUSB0: [Errno 13] 权限被拒绝: '/dev/ttyUSB0'
我的用户名位于/etc/group和/etc/gshadow中的dialout组中,并且自从添加dialout组成员身份后我已重新启动。
$ sudo grep dialout /etc/group /etc/gshadow
/etc/group:dialout:x:20:steve
/etc/gshadow:dialout:*::steve
$ id -Gn steve
steve adm dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers libvirt libvirt-qemu libvirt-dnsmasq
$ groups steve
steve : steve adm dialout cdrom sudo dip plugdev lpadmin sambashare vboxusers libvirt libvirt-qemu libvirt-dnsmasq
Run Code Online (Sandbox Code Playgroud)
/dev/ttyUSB0 文件的所有权和权限是:
crw-rw---- 1 root dialout 188, 0 Nov 17 22:34 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
所以我希望拨出组成员身份能够正常工作。
当我将/dev/ttyUSB0的权限更改为“666”,提供全局读/写访问权限时,我可以访问串行端口:
crw-rw-rw- 1 root dialout 188, 0 Nov 17 22:34 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
虽然可以用作解决方案,但访问应该适用于拨出组成员,但是根据我上面的实验,拨出组成员资格似乎在某种程度上无效。
这个问题与即使在重新启动 Ubuntu 18.04 后,具有拨出组权限的非 root 用户的串行端口权限被拒绝有关,但还有一些额外的要点。
小智 2
这就是我所做的,即使在拔掉并重新连接 Arduino 后它似乎仍然有效。
dev考虑到我需要的 tty 设备可能是到另一个设备的链接,我收集了插入 Arduino 后哪些 tty 被添加到目录中。
就我而言,其中两个:/dev/ttyprintk 和 /dev/ttyACM0,其中第二个是我们期望的 root/dialout 所有权。我将第一个 root/root 更改为root / dialout,事情对我有用。
| 归档时间: |
|
| 查看次数: |
5710 次 |
| 最近记录: |