it-swarm-ru.tech

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

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

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

34
iegod

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

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

usermod -a -G dialout MY_USER_NAME
50

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

0
geekosaur

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

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

0
Deepak Mittal