Доступ к / dev / ttyUSB0 запрещен для члена группы dialout в Kubuntu 18.04

Я пытаюсь получить доступ к микроконтроллеру ESP32, подключенному через USB к / dev / ttyUSB0 на моем компьютере Kubuntu 18.04, но получаю ошибку с отказом в разрешении:

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

Хотя это можно использовать в качестве решения, доступ должен работать для членов группы дозвон, но, исходя из моих экспериментов выше, кажется, что членство в группе дозвон как-то неэффективно.

Этот вопрос связан с Разрешение на последовательный порт отклонено для пользователя без полномочий root с привилегиями группы dialout даже после перезагрузки Ubuntu 18.04, но с некоторыми дополнительными пунктами.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
3 470
1

Ответы 1

Это то, что я сделал, и, похоже, он работает даже после отключения и повторного подключения Arduino.

Подумав, что мне нужно tty-устройство, я понял, какие tty были добавлены в каталог dev после подключения Arduino.

В моем случае их два: / dev / ttyprintk и / dev / ttyACM0, второй из которых, как мы ожидаем, принадлежал root / dialout. Я изменил первый, который был root / root, на корень / дозвон, и у меня все заработало.

Я не уверен, как это может быть правильно. / dev / ttyprintk должен быть там независимо от того, подключен ли Arduino (по крайней мере, в моей системе). Есть ли причина, по которой вы думаете, что это сработало?

topher217 10.02.2021 08:46

Другие вопросы по теме