Страница 1 из 1

Обработка нажатия клавиш на удаленном сервере

Добавлено: 2014-06-17 7:04:18
alm604
Добрый день, форумчане.
Сейчас в работе проект, который никак не могу доделать по причине, думаю, плохого знания ОС FreeBSD.
Проект представляет собой одинокостоящую машинку с упомянутой ОС, без монитора, но с кастрированной клавиатурой - имеются только клавиши 1, 2, 3, 4, 5, 6, 7, 8, 9.
Кроме того, на морду машинки выведен один разъем USB. При подключении туда флешки происходит копирование файлов, а вот каких - должно определяться нажатиями тех самых клавиш.
Весь алгоритм работы описан shell-скриптом. При подключении флешки выполняется автомонтирование, далее необходим ответ от оператора. И вот тут проблема:
- вход в систему не выполнен, следовательно на экране, который не видно по причине его отсутствия, выведено приглашение к вводу имени пользователя.
- нажатие этой кастрированной клавиатуры будет восприниматься, как ввод логина, а мне нужно, чтоб это нажатие направлялось в работающий скрипт.
- клавиша Enter отсутствует, а значит ввод должен быть realtime или как это еще назвать...
Может еще что-то нужно подсказать, чтоб попросить помощи в решении проблемы?

Re: Обработка нажатия клавиш на удаленном сервере

Добавлено: 2014-06-17 12:18:23
suspender
Имхо не с той стороны заходишь

Автологин во фряху + автозапуск иксов (соответствующим образом кастрированных ) + автозапуск self_made_gui_tool, развернутой во весь экран с надписями на окне чё какая кнопка делает. В этой же self_made_gui_tool ловить нажатия клавиш и обрабатывать (да хоть шеллскрипты запускать соответствующие).

self_made_gui_tool я бы лично писал на python + PyQT (пара минут в qt designer + пару десятков строчек кода)
С тем же успехом можно заюзать c# mono + gtk#/winforms, си, плюсы, перловку etc
Особых знаний языков не нужно - реально нагуглить с нуля за полдня.

ps. Надо только как то опасаться клавиатур в USB вход подключаемых.

Re: Обработка нажатия клавиш на удаленном сервере

Добавлено: 2014-06-27 9:11:11
Гость
alm604,
полагаю, что вам необходимо в оси исключить иксы и всё, что связано с графикой, и напротив - так или иначе задействовать автологин для НЕпривилегированного пользователя, притом - при старте оси. Ну а ваш скрипт автоматом стартует в автозагрузке (ну или демоном его заделать...)
Поскольку в ТЗ как будто явно указано, что машинка будет работать без моника и нормальной клавы, всяческие телодвижения (включая и данные в ответе suspender) окажутся по меньшей мере лишним гимором, а по сути излишними сущностями, вообще никак не способствующими решению задачи...
Как то так навскидку

Re: Обработка нажатия клавиш на удаленном сервере

Добавлено: 2014-06-27 9:19:55
Гость
ЗЫ, но suspender абсолютно прав, что нужно как-то добиться невозможности подключения юсб-клавы (скорее всего выключением сервиса для клавы: только не спрашивате меня, как конкретно ето сделать... выступаю тут типичным консалтинговым филином! ;)) к етому... гм, недоПК - бо иначе кулхацкеры вам похозяйничают в нём (несмотря на непривилегированного юзера, попортить из консоли можно многое...)
Note. Должно быть, коли вы назвали хозяйство "сервером", управлять им будете по сетке (ssh?) через хорошо настроенную и крепко запароленную рутовую учётку... не правда ли?

Re: Обработка нажатия клавиш на удаленном сервере

Добавлено: 2014-06-27 10:05:56
Гость
А немного пораскинув мозгами, могу посоветовать простое и надежное решение насчёт безопасности: непривилег. юзара создайте без возможности шелла. Точка! Кулхацкер пусть хоть повесится на шнурке принесённой клавы, ничего навредить не сможет! :Yahoo!:
На в скрипт, считывающий нажатия цифровых клавиш, лучше заделать демоном... :oops: