jabsh (Jabber Shell)
Модератор: Модераторы разделов
jabsh
jabsh - программа для управления компьютером при помощи протокола XMPP и созданной на его основе IM-сети Jabber.
Создана была под влиянием безысходности - провайдер закрыл меня за NATом, а использовать dyndns.org не получилось - IP менялся практически каждые несколько секунд и в итоге меня забанили ((. Собственно поэтому я и придумал jabsh.
Программа написана на C++, для работы с протоколом XMPP используется библиотеку gloox. Возможно исполнять любые консольные команды, за исключением тех, которые ждут ввода от пользователя. Размер вывода команды не ограничен.
Для работы нужно указать 2 JID'a: 1 - JID на который вы будете посылать консольные команды, 2 - JID с которого jabsh будет ожидать консольных команд. Любые сообщение, посланные не с JID #2 отбрасываются. JID'ы указываются в конфиге.
Программа устанавливается через make; make install. autotools я не использовал. Перед использованием подредактировать под себя конфигурационный файл - /usr/local/etc/jabsh.rc!
На данный момент есть одна проблема - реализовать обработчики исключений в соответствии с документацией, поставляемой с библиотекой, у меня не получилось. Причины неизвестны . Подробне - см. файлы BUGS, jabber.cpp:117
Просьба слать предложения по улучшению и исправлению ошибок на мыло разработчику.
Страница проекта: http://jabsh.sourceforge.net/
Создана была под влиянием безысходности - провайдер закрыл меня за NATом, а использовать dyndns.org не получилось - IP менялся практически каждые несколько секунд и в итоге меня забанили ((. Собственно поэтому я и придумал jabsh.
Программа написана на C++, для работы с протоколом XMPP используется библиотеку gloox. Возможно исполнять любые консольные команды, за исключением тех, которые ждут ввода от пользователя. Размер вывода команды не ограничен.
Для работы нужно указать 2 JID'a: 1 - JID на который вы будете посылать консольные команды, 2 - JID с которого jabsh будет ожидать консольных команд. Любые сообщение, посланные не с JID #2 отбрасываются. JID'ы указываются в конфиге.
Программа устанавливается через make; make install. autotools я не использовал. Перед использованием подредактировать под себя конфигурационный файл - /usr/local/etc/jabsh.rc!
На данный момент есть одна проблема - реализовать обработчики исключений в соответствии с документацией, поставляемой с библиотекой, у меня не получилось. Причины неизвестны . Подробне - см. файлы BUGS, jabber.cpp:117
Просьба слать предложения по улучшению и исправлению ошибок на мыло разработчику.
Страница проекта: http://jabsh.sourceforge.net/
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
- eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
- Контактная информация:
Re: jabsh
Вроде было уже что-то такое. По крайней мере на лоре новость проскакивала.
Или это об этом проекте было?
Или это об этом проекте было?
В дисгармонии со вселенной.
Re: jabsh
нет, не про этот, был похожий проект, но его последний релиз был в 2004 году.
Re: jabsh
В "проектах..." самое место этой теме мне кажется.
Re: jabsh
Гы. Когда я начинал работу над jabsh, тот проект был еще не очень. Например использование временного файла и обрезание вывода команды до 4 Кб меня не устраивали.
Этого у меня еще нет.
В планах реализации тоже есть закачка и скачка файлов...
Логирование пользовательских команд.
Этого у меня еще нет.
В планах реализации тоже есть закачка и скачка файлов...
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
исключением тех, которые ждут ввода от пользователя.
Можно попробывать запускать такие программы в псевдо-терминальном устройстве, хотя врятли прокатит - глюков много будет.
Re: jabsh
ftp://89.223.36.40/WTF_not_distr/jsh/
Еще одна ссылка для скачивания.
Еще одна ссылка для скачивания.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
Не хочу вмешиваться в чужой проект(вы уж меня простите ), но на досуге набросал нечто аналогичное, но работающие через псевдо-терминал. Работает как самый настоящий терминал(т.е. полноценно перемещается по директориям через cd , выполняет скрипты(ввод пользовательских данных есть, но работает через раз) и т.д. ).
Если не увидели вывода на свою комманду, то отправте сообщение "---"(типо как page down).
Единственный критический баг, при попытке передать цветной текст, программу вышибает(проблема в gloox).
slil.ru/25612484
Если не увидели вывода на свою комманду, то отправте сообщение "---"(типо как page down).
Единственный критический баг, при попытке передать цветной текст, программу вышибает(проблема в gloox).
slil.ru/25612484
- eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
- Контактная информация:
Re: jabsh
Заведена страничка проекта на SourceForge: http://sourceforge.net/projects/jabsh/.
Сайт проекта (jabsh.sourceforge.net) пока находится в разработке.
Сайт проекта (jabsh.sourceforge.net) пока находится в разработке.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
Вышла новая версия jabsh: jabsh-0.2-beta. Страничка проекта - jabsh.sourceforge.net.
Краткий список нововведений:
1) Теперь пишется лог файл.
2) Если к нам лезут не с админского JID'а то оповещаем об этом админа.
3) jabsh может работать как демон.
4) Написана man-страница для программы.
Краткий список нововведений:
1) Теперь пишется лог файл.
2) Если к нам лезут не с админского JID'а то оповещаем об этом админа.
3) jabsh может работать как демон.
4) Написана man-страница для программы.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
Вышла новая версия jabsh: jabsh-0.3-beta. Страничка проекта - jabsh.sourceforge.net.
Краткий список нововведений:
1) Для ведения логов используется демон syslogd. Лог jabsh находится в /var/log/user.log
2) Теперь соединение от jabsh до jabber сервера шифруется по SSL или TLS
3) Найден и исправлен несколько нерациональный код.
4) Доступен раздел FAQ на сайте, в который включены вопросы, возникшие у пользователя narendra sisodiya. Вместе с дистрибутивом также поставляется краткое руководство по jabsh (на английском). См. файл README.
Остальное читайте в ChangeLog'е.
Краткий список нововведений:
1) Для ведения логов используется демон syslogd. Лог jabsh находится в /var/log/user.log
2) Теперь соединение от jabsh до jabber сервера шифруется по SSL или TLS
3) Найден и исправлен несколько нерациональный код.
4) Доступен раздел FAQ на сайте, в который включены вопросы, возникшие у пользователя narendra sisodiya. Вместе с дистрибутивом также поставляется краткое руководство по jabsh (на английском). См. файл README.
Остальное читайте в ChangeLog'е.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
- eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
- Контактная информация:
- Abdurahman
- Сообщения: 8
- ОС: OpenSUSE 11.0
- Контактная информация:
Re: jabsh
Код:
g++ -c -DJABSH_VERSION=\"0.3\" -DOS_VERSION=\"Linux\" -I./include ./src/main.cpp ./src/jabber.cpp ./src/config.cpp ./src/shell.cpp ./src/ftransfer.cpp
In file included from ./src/../include/jabber.h:36,
from ./src/main.cpp:31:
./src/../include/../include/ftransfer.h:12:31: error: gloox/siprofileft.h: No such file or directory
./src/../include/../include/ftransfer.h:13:38: error: gloox/siprofilefthandler.h: No such file or directory
./src/../include/../include/ftransfer.h:14:36: error: gloox/socks5bytestream.h: No such file or directory
./src/../include/../include/ftransfer.h:15:29: error: gloox/simanager.h: No such file or directory
./src/../include/../include/ftransfer.h:21: ошибка: expected class-name before ‘{’ token
./src/../include/../include/ftransfer.h:37: ошибка: ‘SOCKS5Bytestream’ не был декларирован
./src/../include/../include/ftransfer.h:38: ошибка: ‘SIProfileFT’ не был декларирован
./src/../include/../include/ftransfer.h:41: ошибка: ISO C++ запрещает декларации ‘SIProfileFT’ без типа
./src/../include/../include/ftransfer.h:41: ошибка: expected ‘;’ before ‘*’ token
./src/../include/jabber.h:45: ошибка: ‘MessageSession’ не был декларирован
./src/../include/jabber.h:54: ошибка: ISO C++ запрещает декларации ‘SIProfileFT’ без типа
./src/../include/jabber.h:54: ошибка: expected ‘;’ before ‘*’ token
./src/main.cpp: In function ‘int main(int, char**)’:
./src/main.cpp:143: ошибка: cannot declare variable ‘b’ to be of abstract type ‘JSH’
./src/../include/jabber.h:38: замечание: because the following virtual functions are pure within ‘JSH’:
/usr/include/gloox/messagehandler.h:46: замечание: virtual void gloox::MessageHandler::handleMessage(gloox::Stanza*)
In file included from ./src/../include/jabber.h:36,
from ./src/jabber.cpp:20:
./src/../include/../include/ftransfer.h:12:31: error: gloox/siprofileft.h: No such file or directory
./src/../include/../include/ftransfer.h:13:38: error: gloox/siprofilefthandler.h: No such file or directory
./src/../include/../include/ftransfer.h:14:36: error: gloox/socks5bytestream.h: No such file or directory
./src/../include/../include/ftransfer.h:15:29: error: gloox/simanager.h: No such file or directory
./src/../include/../include/ftransfer.h:21: ошибка: expected class-name before ‘{’ token
./src/../include/../include/ftransfer.h:37: ошибка: ‘SOCKS5Bytestream’ не был декларирован
./src/../include/../include/ftransfer.h:38: ошибка: ‘SIProfileFT’ не был декларирован
./src/../include/../include/ftransfer.h:41: ошибка: ISO C++ запрещает декларации ‘SIProfileFT’ без типа
./src/../include/../include/ftransfer.h:41: ошибка: expected ‘;’ before ‘*’ token
./src/../include/jabber.h:45: ошибка: ‘MessageSession’ не был декларирован
./src/../include/jabber.h:54: ошибка: ISO C++ запрещает декларации ‘SIProfileFT’ без типа
./src/../include/jabber.h:54: ошибка: expected ‘;’ before ‘*’ token
./src/jabber.cpp: In member function ‘void JSH::JSHConnect()’:
./src/jabber.cpp:52: ошибка: нет декларации ‘ft’ в этой области видимости
./src/jabber.cpp:52: ошибка: expected type-specifier before ‘SIProfileFT’
./src/jabber.cpp:52: ошибка: expected `;' before ‘SIProfileFT’
./src/jabber.cpp:56: ошибка: ‘class gloox::Client’ has no member named ‘setPresence’
./src/jabber.cpp:65: ошибка: type ‘<type error>’ argument given to ‘delete’, expected pointer
./src/jabber.cpp: At global scope:
./src/jabber.cpp:97: ошибка: ‘MessageSession’ не был декларирован
./src/jabber.cpp: In member function ‘void JSH::handleMessage(gloox::Stanza*, int*)’:
./src/jabber.cpp:120: предупреждение: converting to ‘int’ from ‘double’
./src/jabber.cpp: In member function ‘virtual void JSH::onDisconnect(gloox::ConnectionError)’:
./src/jabber.cpp:183: ошибка: нет декларации ‘ConnCompressionFailed’ в этой области видимости
./src/jabber.cpp:199: ошибка: нет декларации ‘ConnDnsError’ в этой области видимости
./src/jabber.cpp:202: ошибка: нет декларации ‘ConnConnectionRefused’ в этой области видимости
./src/jabber.cpp:206: ошибка: нет декларации ‘ConnParseError’ в этой области видимости
./src/jabber.cpp:214: ошибка: нет декларации ‘ConnProxyNoSupportedAuth’ в этой области видимости
./src/jabber.cpp:218: ошибка: нет декларации ‘ConnProxyAuthFailed’ в этой области видимости
./src/jabber.cpp:222: ошибка: нет декларации ‘ConnProxyAuthRequired’ в этой области видимости
./src/jabber.cpp:230: ошибка: нет декларации ‘ConnStreamVersionError’ в этой области видимости
./src/config.cpp: In constructor ‘ConfigReader::ConfigReader()’:
./src/config.cpp:47: предупреждение: NULL в арифметическом выражении
In file included from ./src/ftransfer.cpp:6:
./src/../include/ftransfer.h:12:31: error: gloox/siprofileft.h: No such file or directory
./src/../include/ftransfer.h:13:38: error: gloox/siprofilefthandler.h: No such file or directory
./src/../include/ftransfer.h:14:36: error: gloox/socks5bytestream.h: No such file or directory
./src/../include/ftransfer.h:15:29: error: gloox/simanager.h: No such file or directory
./src/../include/ftransfer.h:21: ошибка: expected class-name before ‘{’ token
./src/../include/ftransfer.h:37: ошибка: ‘SOCKS5Bytestream’ не был декларирован
./src/../include/ftransfer.h:38: ошибка: ‘SIProfileFT’ не был декларирован
./src/../include/ftransfer.h:41: ошибка: ISO C++ запрещает декларации ‘SIProfileFT’ без типа
./src/../include/ftransfer.h:41: ошибка: expected ‘;’ before ‘*’ token
./src/ftransfer.cpp: In member function ‘void JSHFTHandler::handleFTRequest(const gloox::JID&, const std::string&, const std::string&, const std::string&, long int, const std::string&, const std::string&, const std::string&, const std::string&, int, long int, long int)’:
./src/ftransfer.cpp:29: ошибка: нет декларации ‘ft’ в этой области видимости
./src/ftransfer.cpp:29: ошибка: ‘SIManager’ не был декларирован
./src/ftransfer.cpp:33: ошибка: нет декларации ‘ft’ в этой области видимости
./src/ftransfer.cpp: At global scope:
./src/ftransfer.cpp:47: ошибка: variable or field ‘handleFTSOCKS5Bytestream’ declared void
./src/ftransfer.cpp:47: ошибка: ‘int JSHFTHandler::handleFTSOCKS5Bytestream’ is not a static member of ‘class JSHFTHandler’
./src/ftransfer.cpp:47: ошибка: нет декларации ‘SOCKS5Bytestream’ в этой области видимости
./src/ftransfer.cpp:47: ошибка: нет декларации ‘s5b’ в этой области видимости
./src/ftransfer.cpp:47: ошибка: expected ‘,’ or ‘;’ before ‘{’ token
./src/ftransfer.cpp:53: ошибка: variable or field ‘setSIProfileFTHandler’ declared void
./src/ftransfer.cpp:53: ошибка: ‘int JSHFTHandler::setSIProfileFTHandler’ is not a static member of ‘class JSHFTHandler’
./src/ftransfer.cpp:53: ошибка: нет декларации ‘SIProfileFT’ в этой области видимости
./src/ftransfer.cpp:53: ошибка: нет декларации ‘spfft’ в этой области видимости
./src/ftransfer.cpp:53: ошибка: expected ‘,’ or ‘;’ before ‘{’ token
make: *** [jabsh_o] Ошибка 1
Бунта Gutsy
libgloox5 0.8.8~sic-1
libgloox-dev
Что ему ещё не хватает?
IN GOD WE TRUST
Re: jabsh
Читайте внимательнее информацию на сайте - jabsh-0.3 работает только с libgloox-0.9.9.5. На совместимость с остальными версиями libgloox не проверялось, особенно учитывая, что там каждый раз что-нибудь да поменяют.
Скачать libgloox-0.9.9.5 можно здесь.
Скачать libgloox-0.9.9.5 можно здесь.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
как развитие идеи... а зачем создавать велосипед?
Например, можно абстрагироваться от взаимодействия с непосредственно системой...
Создается два приложения.. клиентское и серверное... клиент и сервер по старинке взаимодействуют через тот же протокол...
Но! серверная часть соединяется на локалхост к тому же телнету, а клиентская прослушивает определенный порт, на который юзверь должен подключаться опять таки тем же телнетом... клиент и сервер просто гоняют байты(а точнее их коды), которые отправляют соотв. телнет-сервер и телнет-клиент. Фактически получается что-то вроде портмаппинга, только в несколько извращенном варианте
и сухой остаток от такой архитектуры: вы получаете полнофункциональный телнет(или другой любимый протокол) и не надо мучаться.. Вы просто концентрируетесь на конкретной маленькой задаче... а именно передаче данных между локальным соединением и сервером Jabbera.. проще и более резиново
Например, можно абстрагироваться от взаимодействия с непосредственно системой...
Создается два приложения.. клиентское и серверное... клиент и сервер по старинке взаимодействуют через тот же протокол...
Но! серверная часть соединяется на локалхост к тому же телнету, а клиентская прослушивает определенный порт, на который юзверь должен подключаться опять таки тем же телнетом... клиент и сервер просто гоняют байты(а точнее их коды), которые отправляют соотв. телнет-сервер и телнет-клиент. Фактически получается что-то вроде портмаппинга, только в несколько извращенном варианте
и сухой остаток от такой архитектуры: вы получаете полнофункциональный телнет(или другой любимый протокол) и не надо мучаться.. Вы просто концентрируетесь на конкретной маленькой задаче... а именно передаче данных между локальным соединением и сервером Jabbera.. проще и более резиново
Re: jabsh
Идея хороша. Но! К сожалению это трудно провернуть на моем Siemens C75, а ноута у меня пока нет . А иногда возникает надобность порулить системой. jabsh создавалась только ради этого - управлять компьютером, имея только телефон и Bombus (прочие telnet и ssh клиенты на нем были неудобны мне).
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
Добавил файлы, с разрабатываемой в данный момент версией jabsh, в SVN репозиторий (https://jabsh.svn.sourceforge.net/svnroot/jabsh).
Добавил новости.
Обновлю сайт, когда будет готова jabsh-0.4-alpha.
Добавил новости.
Обновлю сайт, когда будет готова jabsh-0.4-alpha.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
jabsh теперь компилируется при помощи autotools. Буду очень рад тем, кто проверит насколько правильно я это сделал.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
У меня вроде получилось. Только пример конфига не установился автоматически. Планируется ли поддержка http-proxy ?
p.s. могу поделиться rpm-пакетом для mandriva 2008.1
Re: jabsh
Только пример конфига не установился автоматически.
Исправил. Устанавливается в /usr/local/etc/jabsh.rc из ./doc/jabsh.rc
p.s. могу поделиться rpm-пакетом для mandriva 2008.1
Пока не доделаю все, что изначально хотел сделать - программа будет распространяться как обычно - в исходниках.
Планируется ли поддержка http-proxy ?
Пока нет.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Re: jabsh
Вышла новая версия jabsh: jabsh-0.4-alpha. Как ясно из названия - работает, но может глючить .
Краткий список нововведений:
1) Для сборки jabsh теперь используются autotools.
2) Почищен исходный код (полезно заглядывать в свои программы через полгода ) и документация вместе с комментами в коде.
3) Переработан код, отвечающий за обработку пользовательских команд. Теперь вы можете использовать команды, ждущие ввода от пользователя, без ущерба для здоровья. Например: nslookup или sudo.
4) Убрал посылку сообщения об ошибке, когда от пользователя приходило пустое сообщение - например когда джаббер клиент посылал сообщение о том, что пользователь что-то печатает (указал на сей баг некто Longer).
5) За ненадобностью, убрал много встроенных команд. Оставил только одну - "!exit".
Остальное читайте в ChangeLog'е.
Страничка проекта - jabsh.sourceforge.net.
Скачать последнюю версию jabsh можно здесь: http://surfnet.dl.sourceforge.net/sourcefo...4-alpha.tar.bz2 или взять ее из SVN.
Краткий список нововведений:
1) Для сборки jabsh теперь используются autotools.
2) Почищен исходный код (полезно заглядывать в свои программы через полгода ) и документация вместе с комментами в коде.
3) Переработан код, отвечающий за обработку пользовательских команд. Теперь вы можете использовать команды, ждущие ввода от пользователя, без ущерба для здоровья. Например: nslookup или sudo.
4) Убрал посылку сообщения об ошибке, когда от пользователя приходило пустое сообщение - например когда джаббер клиент посылал сообщение о том, что пользователь что-то печатает (указал на сей баг некто Longer).
5) За ненадобностью, убрал много встроенных команд. Оставил только одну - "!exit".
Остальное читайте в ChangeLog'е.
Страничка проекта - jabsh.sourceforge.net.
Скачать последнюю версию jabsh можно здесь: http://surfnet.dl.sourceforge.net/sourcefo...4-alpha.tar.bz2 или взять ее из SVN.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.