В некоторых блогах предлагалось набрать sudo adduser $USER dialout , но уже показывалось, что $USER уже является участником группового dialout , и когда я перезагружал компьютер, /dev/ttyACM0 не было прочитано / написать превалирование.

crw-rw---- 1 root dialout 166, 0 Mar 22 13:53 /dev/ttyACM0

Я не знаком с Ubuntu 16.04, поэтому любая помощь будет принята с благодарностью.

1 ответ1

2

Вы не должны создавать какие-либо файлы, особенно файлы устройств, доступные для записи на вашем компьютере. Это огромный недостаток безопасности. Политики групповых разрешений существуют по причине в ядре Linux. Если ваш пользователь действительно был членом группы dialout , у вас уже было разрешение на чтение и запись для этого файла. Введите id в командной строке, чтобы получить список всех групп, в которые входит ваш пользователь. Есть ли dialout в этом списке? Если нет, то вы должны добавить его. sudo adduser $USER dialout добавить $USER в группу dialout , но это специальная оболочка для Ubuntu, правильный способ добавить вашего пользователя в группу dialout в linux - это sudo usermod -aG $USER dialout . Проверьте, работает ли это лучше. Вы также можете попробовать cat /dev/ttyACM0 чтобы увидеть, действительно ли у вашего пользователя есть разрешение на чтение этого файла, если его нет t, you получите ошибку « Permission denied доступе».

Если ваш пользователь является членом группы dialout , но ваше приложение по-прежнему не может получить доступ к этому устройству, убедитесь, что ваше приложение действительно запущено как ваш пользователь или нет как другой пользователь, например, из-за сценария запуска. Также убедитесь, что это действительно тот файл, который блокирует работу вашего приложения, а не что-то еще. Вам нужно будет предоставить дополнительную информацию по этому вопросу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .