Как использовать виртуальный последовательный порт без прав суперпользователя?

Другой способ получить исходные значения - использовать grep cpu0 / proc / stat . Там вы видите количество отметок в каждом состоянии. Выполните man proc , чтобы узнать подробности интерпретации. Если вы хотите получить процентное соотношение, вы должны сложить их вместе и разделить, например, в соответствии с предложением Джона В. Гилла .

2
04.04.2019, 06:38
2 ответа

Я не совсем понимаю, зачем вообще нужен виртуальный последовательный порт. Что произойдет, если вы просто telnet 10.0.0.1 4030?

Далее следует запустить socatбез sudoот имени обычного пользователя и выбрать доступный путь, например./tmp/vcom0(или как там ).

Если это по какой-то причине не работает, и вы, очевидно, можете sudo, попробуйте сменить владельца

sudo chown your_username /dev/virtualcom0

или разрешения

sudo chmod o+rw /dev/virtualcom0

Редактировать

Не пытайтесь создавать udevправила для конкретного псевдотерминала. Во-первых, вы не знаете заранее, какой это псевдотерминал, во-вторых, псевдотерминалы используются повсеместно, и другие программы не смогут создать этот псевдотерминал для другого пользователя.

Самое чистое решение — использовать вариант (1)(/tmp/vcom0).

Если вы настаиваете на других вариантах, создайте короткий сценарий, содержащий как socat, так и chmod/ chown, и выполните этот сценарий с помощью sudo. При необходимости вы можете переходить по символьным ссылкам с помощью readlink.

Другой альтернативой является написание короткого скрипта, который вызывает как socatкак обычный пользователь, так и stellariumс созданной им ссылкой, и уничтожает socat, когда это делается. Используйте этот скрипт для запуска stellarium.

5
27.01.2020, 21:55

Я нашел ответ после просмотра справочной страницы для socat.

Вы можете добавить режим и группу к атрибутам вашего pty, добавив еще несколько выражений в командную строку. Чтобы последовать вашему примеру, но с вашим новым последовательным портом, принадлежащим группе дозвона, и с доступом для чтения/записи для этой группы, сделайте следующее:

$ sudo socat pty,link=/dev/virtualcom0,raw,group-late=dialout,mode=660 tcp:10.0.0.1:4030
2
27.01.2020, 21:55

Теги

Похожие вопросы