Чтение / запись в последовательный порт без рута?


31

Я пишу приложение для чтения / записи в / из последовательного порта в Fedora14, и оно прекрасно работает, когда я запускаю его как root. Но когда я запускаю его как обычный пользователь, я не могу получить привилегии, необходимые для доступа к устройству (/ dev / ttySx). Это немного глупо, потому что теперь я не могу отладить эту чертову штуку с помощью Eclipse.

Я попытался запустить Eclipse с помощью sudo, но он повредил мое рабочее пространство, и я даже не могу открыть проект. Поэтому я хотел бы знать, возможно ли снизить требования к доступу для записи в / dev / ttySx, чтобы любой обычный пользователь мог получить к нему доступ. Это возможно?

Ответы:


46

Право доступа к последовательному порту определяется разрешениями файла устройства (например /dev/ttyS0). Поэтому все, что вам нужно сделать, это либо организовать устройство, которым вы владеете, либо (лучше) поместить себя в группу, которая владеет устройством, либо (если Fedora поддерживает его, что, я думаю, так и есть) организовать для устройства принадлежат пользователю, который вошел в систему на консоли.

Например, в моей системе (не в Fedora) /dev/ttyS0она принадлежит пользователю rootи группе dialout, поэтому, чтобы иметь доступ к последовательному устройству, я бы добавил себя в dialoutгруппу:

usermod -a -G dialout MY_USER_NAME

1
Я собираюсь принять это, так как это привело меня на правильный путь. Для Fedora команда usermod используется после того, как пользователь был создан. Рассматриваемая группа также была для меня дозвоном: sudo usermod -a -G dialout <имя пользователя>. Приветствия.
сегодня

5
Обратите внимание, что вам может потребоваться выйти и войти, чтобы появиться в новой группе
Ян Шпачек

1
По многочисленным просьбам: sudo usermod -a -G dialout $USER:-)
Сиро Сантилли 新疆 改造 中 at 法轮功 六四 事件

0

Многие дистрибутивы используют членство в группах для обеспечения доступа к последовательным портам. Я не знаю деталей для Fedora, однако.


0

Я думаю, что вы можете добавить себя в файл sudoers, который позволит вам указать набор команд в качестве псевдонима команды, которые вы сможете выполнять без пароля. Вы можете найти отличный учебник по файлу sudoers в документации по Ubuntu .

Затем вы можете запустить eclipse в обычном режиме, и он сможет выполнять эти конкретные команды без прав root.


-2

У меня была эта проблема и в тот же день, кроме добавления пользователя в группу дозвона, вам также нужно дать разрешение этому пользователю на доступ к / dev. просто su -> введите пароль root -> chmod -R 777 / dev -R, означает рекурсивный режим, все в этой папке будет иметь такое же разрешение

проблема заключается в том, что вы должны делать это каждый раз, когда вы перезагружаете свой компьютер или подключаете и отключаете ваше устройство, да!


3
chmod -R 777 /devэто очень плохая идея.
RalfFriedl

Я согласен, если есть какие-то другие предложения, это будет здорово
Туну Йолим Нгаджило

Интересно, нужно ли было выходить из системы и снова входить в нее, как в комментарии к принятому ответу? Это часто сбивает людей с толку.
sourcejedi

Предоставлять всем пользователям бесплатный доступ ко всему, что находится внутри / dev /, крайне небезопасно. Пожалуйста, не делай этого.
unfa
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.