Есть ли конкретная возможность чтения последовательного порта? - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу прочитать данные с GPS, подключенного к USB и воспринятого системой как последовательное устройство. Я не хотел бы использовать chmod u+s или sudo и дать процессу как минимум минимальные возможности для этого.

Для проверки я использовал команду cat:

sudo cat /dev/ttyACM0

Это работает, но могу ли я дать cat определенную возможность чтения последовательного порта?

Я пытался setcap cap_sys_rawio+p и cap_sys_tty_config+p безуспешно. Моя идея состоит в том, чтобы дать двоичному файлу только минимальные права, необходимые для выполнения его задачи.

1 Ответ

0 голосов
/ 03 сентября 2018

Обычно ttys принадлежат группе, называемой чем-то похожим на dialup. Это используется в основном для старых cu программ.

Одна вещь, которую вы можете использовать (и я делаю), это включить себя в группу dialup, поскольку вы увидите, что неиспользованные ttys имеют разрешение на запись для владельца и группы, к которой они принадлежат.

Не забудьте выйти из системы и повторно войти в нее при тестировании, поскольку для получения идентификатора группы для группы dialup в списке групп, к которым вы принадлежите, необходимо пройти программу login(1).

Примечание

В моей системе (FreeBSD 11.x) gps принадлежит к группе operator, а я (моя учетная запись) принадлежит к этой группе. Я могу открыть gps (устройство Bluetooth с псевдотерминалом поверх псевдотти)

В Linux я использую последовательное устройство /dev/rfcomm0 (bluetooth). В debian /dev/ttyS0[0-3] принадлежит группе dialout. Вы можете использовать эту группу.

...