我正在尝试访问通过USB连接到我的Kubuntu 18.04计算机上的/ dev / ttyUSB0的ESP32微控制器,但出现权限被拒绝错误:
SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
我的用户名同时在/ etc / group和/ etc / gshadow的拨出组中,并且自从添加拨出组成员身份以来已经重新启动。
$ 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
/ dev / ttyUSB0文件的所有权和权限为:
crw-rw---- 1 root dialout 188, 0 Nov 17 22:34 /dev/ttyUSB0
所以我希望拨出组成员身份起作用。
当我将/ dev / ttyUSB0的权限更改为'666'时,授予世界范围的读/写访问权限,我可以访问串行端口:
crw-rw-rw- 1 root dialout 188, 0 Nov 17 22:34 /dev/ttyUSB0
尽管可以用作解决方案,但访问应该适用于拨出组成员,但根据我上面的实验,看来拨出组成员身份在某种程度上无效。
该问题与Serial port permission denied for non-root user with dialout group privileges even after reboot Ubuntu 18.04有关,但还有一些要点。
答案 0 :(得分:2)
我也有同样的问题,甚至在10个月后,我都没有答案。
这就是我所做的,即使拔下并重新连接arduino,它似乎也能正常工作。考虑到也许我需要的tty设备是到另一个开发人员的链接,所以我在插入arduino之后收集了哪些tty被添加到dev目录中。就我而言,其中两个是/ dev / ttyprintk和/ dev / ttyACM0,其中第二个是我们期望的root / dialout所有权。我将第一个root / root更改为root / dialout,一切对我来说都有效。