Удаленная Мышь netcat (/dev/input/mice)

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

Если Вы хотите иметь в наличии окно и выполнить больше команд это это, выполнить оболочку, когда начальная команда заканчивается.

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; exec bash -i'

Если Вы хотите иметь в наличии окно только, чтобы видеть вывод, выполнить команду, которая ожидает, такой как sleep (с почти бесконечным аргументом) или read (ожидает, пока Вы не нажимаете Enter).

screen -S webserver -dm sh -c 'launch_webserver.sh; echo $?; read'

Если Вы хотите иметь в наличии сессию, но не окно, выполнить другую команду. Необходимо будет записать screenrc файл (который является хорошей идеей так или иначе).

screen -c /path/to/webserver.screenrc

где /path/to/webserver.screenrc содержит

sessionname webserver
screen -t webserver launch_webserver.sh
screen -t shell bash
5
16.12.2014, 14:18
2 ответа

Необработанная обработка событий мыши с использованием файла устройства потребует:

  1. повышенных привилегий, так что вы не должны открывать клиентскому приложению
  2. достаточно знаний о внутренней работе устройства мыши, чтобы в основном создать свою собственную мышь драйвер, который, конечно, может быть загружаемым модулем ядра, и он может быть доступен через локальную службу, созданную вами, которая будет получать команды из сети и отправлять их в модуль ядра по настраиваемому протоколу, или
  3. вы можете просто создайте приложение, которое предоставляет функциональность загруженного драйвера мыши какому-либо внешнему сетевому интерфейсу, и в этом случае самым простым решением для клиента было бы сделать его интерфейсом REST и управлять им через curl или браузер

Но ни одно из вышеперечисленных решений не кажется безопасным ...

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

Я полагаю, что когда вы говорите, что «вы хотите управлять мышью удаленно», вы имеете в виду управление мышью, как показано в целевом графическом интерфейсе пользователя. Это сервис, предоставляемый сервером X-Windows, которым можно легко и безопасно управлять через командную строку с помощью ssh.
Простите, но я действительно не знаю, как netcat вписывается в эту картину ...

Итак, вы могли бы просто использовать xdotool ] для имитации события мыши по ssh-соединению:

$ ssh user@machine xdotool mousemove 0 0 click 1

Да, это действительно так просто!

См .:
Как события мыши работают в Linux?
https: // stackoverflow.com / questions / 1029027 / x11-move-an-existing-window-via-command-line

Это на тот случай, если вы хотите управлять курсором мыши, как показано в целевой операционной системе. Потому что, если ваша цель - создать терминальное приложение, использующее мышь (это мышь, физически подключенная к клиенту), вам определенно следует выбрать программу, основанную на ncurses . ncurses использует сервер мыши терминала с открытым исходным кодом, а также может использоваться для предоставления сложного графического интерфейса через ssh и простого терминала. Кроме того, ncurses не зависит от работы x-сервера, потому что он никоим образом не влияет на мышь сервера, он просто использует мышь клиента для управления приложением.

В любом случае, если ваша цель - просто поиграть с файлами устройства linux, попробуйте отправить документ на аудиоустройство и посмотреть, как он звучит ... подойдет простой cat and pipe с привилегиями root.

0
27.01.2020, 20:43

Я написал более подробный ответ по существу на тот же вопрос там,но основная идея состоит в том:

Клиент:nc -l -p 4567 | uinput

Сервер:intercept -g /dev/input/by-id/usb-My-mouse-name | nc 10.1.2.3 4567

При этом используется средства перехвата -Минимальная компонуемы инфраструктуры в верхней части libudev и libevdev

0
08.09.2021, 08:03

Теги

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